diff --git a/packages/api/src/@core/connections/connections.controller.ts b/packages/api/src/@core/connections/connections.controller.ts index c1158b4ee..452eb6aba 100644 --- a/packages/api/src/@core/connections/connections.controller.ts +++ b/packages/api/src/@core/connections/connections.controller.ts @@ -17,6 +17,7 @@ import { ConnectorCategory } from '@panora/shared'; import { AccountingConnectionsService } from './accounting/services/accounting.connection.service'; import { MarketingAutomationConnectionsService } from './marketingautomation/services/marketingautomation.connection.service'; import { JwtAuthGuard } from '@@core/auth/guards/jwt-auth.guard'; +import { CoreSyncService } from '@@core/sync/sync.service'; export type StateDataType = { projectId: string; @@ -34,6 +35,7 @@ export class ConnectionsController { private readonly ticketingConnectionsService: TicketingConnectionsService, private readonly accountingConnectionsService: AccountingConnectionsService, private readonly marketingAutomationConnectionsService: MarketingAutomationConnectionsService, + private readonly coreSyncService: CoreSyncService, private logger: LoggerService, private prisma: PrismaService, ) { @@ -49,7 +51,7 @@ export class ConnectionsController { @ApiQuery({ name: 'location', required: true, type: String }) @ApiResponse({ status: 200 }) @Get('oauth/callback') - handleCallback( + async handleCallback( @Res() res: Response, @Query('state') state: string, @Query('code') code: string, @@ -71,7 +73,7 @@ export class ConnectionsController { switch (vertical.toLowerCase()) { case ConnectorCategory.Crm: const zohoLocation_ = zohoLocation ? zohoLocation : ''; - this.crmConnectionsService.handleCRMCallBack( + await this.crmConnectionsService.handleCRMCallBack( projectId, linkedUserId, providerName, @@ -82,7 +84,7 @@ export class ConnectionsController { case ConnectorCategory.Ats: break; case ConnectorCategory.Accounting: - this.accountingConnectionsService.handleAccountingCallBack( + await this.accountingConnectionsService.handleAccountingCallBack( projectId, linkedUserId, providerName, @@ -94,7 +96,7 @@ export class ConnectionsController { case ConnectorCategory.Hris: break; case ConnectorCategory.MarketingAutomation: - this.marketingAutomationConnectionsService.handleMarketingAutomationCallBack( + await this.marketingAutomationConnectionsService.handleMarketingAutomationCallBack( projectId, linkedUserId, providerName, @@ -102,7 +104,7 @@ export class ConnectionsController { ); break; case ConnectorCategory.Ticketing: - this.ticketingConnectionsService.handleTicketingCallBack( + await this.ticketingConnectionsService.handleTicketingCallBack( projectId, linkedUserId, providerName, @@ -110,6 +112,8 @@ export class ConnectionsController { ); break; } + // Performing Core Sync Service + this.coreSyncService.initialSync(vertical.toLowerCase(), providerName, linkedUserId, projectId); res.redirect(returnUrl); } catch (error) { handleServiceError(error, this.logger); diff --git a/packages/api/src/@core/connections/connections.module.ts b/packages/api/src/@core/connections/connections.module.ts index a37be7b2d..5fca69533 100644 --- a/packages/api/src/@core/connections/connections.module.ts +++ b/packages/api/src/@core/connections/connections.module.ts @@ -7,6 +7,23 @@ import { TicketingConnectionModule } from './ticketing/ticketing.connection.modu import { AccountingConnectionModule } from './accounting/accounting.connection.module'; import { MarketingAutomationConnectionsModule } from './marketingautomation/marketingautomation.connection.module'; import { ValidateUserService } from '@@core/utils/services/validateUser.service'; +import { CoreSyncService } from '@@core/sync/sync.service'; +import { CompanyModule } from '@crm/company/company.module'; +import { ContactModule } from '@crm/contact/contact.module'; +import { DealModule } from '@crm/deal/deal.module'; +import { EngagementModule } from '@crm/engagement/engagement.module'; +import { NoteModule } from '@crm/note/note.module'; +import { StageModule } from '@crm/stage/stage.module'; +import { TaskModule } from '@crm/task/task.module'; +import { UserModule } from '@crm/user/user.module'; +import { AccountModule } from '@ticketing/account/account.module'; +import { CollectionModule } from '@ticketing/collection/collection.module'; +import { CommentModule } from '@ticketing/comment/comment.module'; +import { ContactModule as TContactModule } from '@ticketing/contact/contact.module'; +import { TagModule } from '@ticketing/tag/tag.module'; +import { TeamModule } from '@ticketing/team/team.module'; +import { TicketModule } from '@ticketing/ticket/ticket.module'; +import { UserModule as TUserModule } from '@ticketing/user/user.module'; @Module({ controllers: [ConnectionsController], @@ -15,8 +32,24 @@ import { ValidateUserService } from '@@core/utils/services/validateUser.service' TicketingConnectionModule, AccountingConnectionModule, MarketingAutomationConnectionsModule, + CompanyModule, + ContactModule, + DealModule, + EngagementModule, + NoteModule, + StageModule, + TaskModule, + UserModule, + AccountModule, + CollectionModule, + CommentModule, + TContactModule, + TagModule, + TeamModule, + TicketModule, + TUserModule ], - providers: [LoggerService, PrismaService, ValidateUserService], + providers: [LoggerService, PrismaService, ValidateUserService, CoreSyncService], exports: [ CrmConnectionModule, TicketingConnectionModule, @@ -24,4 +57,4 @@ import { ValidateUserService } from '@@core/utils/services/validateUser.service' MarketingAutomationConnectionsModule, ], }) -export class ConnectionsModule {} +export class ConnectionsModule { } diff --git a/packages/api/src/@core/sync/sync.service.ts b/packages/api/src/@core/sync/sync.service.ts index 8686107f1..f4d041699 100644 --- a/packages/api/src/@core/sync/sync.service.ts +++ b/packages/api/src/@core/sync/sync.service.ts @@ -1,5 +1,8 @@ import { Injectable } from '@nestjs/common'; import { LoggerService } from '../logger/logger.service'; +import { ConnectorCategory } from '@panora/shared'; +import { CrmObject, ENGAGEMENTS_TYPE } from '@crm/@lib/@types'; +import { PrismaService } from '@@core/prisma/prisma.service'; import { handleServiceError } from '@@core/utils/errors'; import { SyncService as CrmCompanySyncService } from '@crm/company/sync/sync.service'; import { SyncService as CrmContactSyncService } from '@crm/contact/sync/sync.service'; @@ -22,6 +25,7 @@ import { SyncService as TicketingUserSyncService } from '@ticketing/user/sync/sy export class CoreSyncService { constructor( private logger: LoggerService, + private prisma: PrismaService, private CrmCompanySyncService: CrmCompanySyncService, private CrmContactSyncService: CrmContactSyncService, private CrmDealSyncService: CrmDealSyncService, @@ -42,9 +46,101 @@ export class CoreSyncService { this.logger.setContext(CoreSyncService.name); } + //Initial sync which will execute when connection is successfully established + async initialSync( + vertical: string, + provider: string, + linkedUserId: string, + id_project: string + ) { + try { + + const tasks = []; + + switch (vertical) { + case ConnectorCategory.Crm: + // logic + tasks.push(() => this.CrmUserSyncService.syncUsersForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.CrmCompanySyncService.syncCompaniesForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.CrmContactSyncService.syncContactsForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.CrmDealSyncService.syncDealsForLinkedUser(provider, linkedUserId, id_project)); + + for (const type of ENGAGEMENTS_TYPE) { + tasks.push(() => this.CrmEngagementSyncService.syncEngagementsForLinkedUser(provider, linkedUserId, id_project, type)); + } + + tasks.push(() => this.CrmNoteSyncService.syncNotesForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.CrmTaskSyncService.syncTasksForLinkedUser(provider, linkedUserId, id_project)); + + for (const task of tasks) { + try { + await task(); + } catch (error) { + handleServiceError(error, this.logger); + } + } + + const deals = await this.prisma.crm_deals.findMany({ + where: { + remote_platform: provider, + id_linked_user: linkedUserId, + }, + }); + for (const deal of deals) { + await this.CrmStageSyncService.syncStagesForLinkedUser( + provider, + linkedUserId, + id_project, + deal.id_crm_deal, + ); + } + break; + + case ConnectorCategory.Ticketing: + // logic + tasks.push(() => this.TicketingUserSyncService.syncUsersForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.TicketingAccountSyncService.syncAccountsForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.TicketingCollectionSyncService.syncCollectionsForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.TicketingTicketSyncService.syncTicketsForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.TicketingTeamSyncService.syncTeamsForLinkedUser(provider, linkedUserId, id_project)); + tasks.push(() => this.TicketingContactSyncService.syncContactsForLinkedUser(provider, linkedUserId, id_project)); + + for (const task of tasks) { + try { + await task(); + } catch (error) { + handleServiceError(error, this.logger); + } + } + + const tickets = await this.prisma.tcg_tickets.findMany({ + where: { + remote_platform: provider, + id_linked_user: linkedUserId, + }, + }); + + for (const ticket of tickets) { + try { + await this.TicketingCommentSyncService.syncCommentsForLinkedUser(provider, linkedUserId, id_project, ticket.id_tcg_ticket); + await this.TicketingTagSyncService.syncTagsForLinkedUser(provider, linkedUserId, id_project, ticket.id_tcg_ticket); + } catch (error) { + handleServiceError(error, this.logger); + } + } + + break; + } + + } catch (error) { + handleServiceError(error, this.logger); + } + } + // we must have a sync_jobs table with 7 (verticals) rows, one of each is syncing details async getSyncStatus(vertical: string) { try { + } catch (error) { handleServiceError(error, this.logger); } diff --git a/packages/api/src/ticketing/@lib/@utils/index.ts b/packages/api/src/ticketing/@lib/@utils/index.ts index 0be052932..a2fc9daa2 100644 --- a/packages/api/src/ticketing/@lib/@utils/index.ts +++ b/packages/api/src/ticketing/@lib/@utils/index.ts @@ -126,7 +126,7 @@ export class Utils { id_tcg_collection: uuid, }, }); - if (!res) throw new Error(`tcg_contact not found for uuid ${uuid}`); + if (!res) return; return res.remote_id; } catch (error) { throw new Error(error); diff --git a/packages/api/src/ticketing/comment/services/gitlab/mappers.ts b/packages/api/src/ticketing/comment/services/gitlab/mappers.ts index 086bdec7c..b4b832b45 100644 --- a/packages/api/src/ticketing/comment/services/gitlab/mappers.ts +++ b/packages/api/src/ticketing/comment/services/gitlab/mappers.ts @@ -84,7 +84,7 @@ export class GitlabCommentMapper implements ICommentMapper { 'gitlab', ); if (user_id) { - opts.user_id = user_id; + opts = { ...opts, user_id }; } } @@ -102,11 +102,11 @@ export class GitlabCommentMapper implements ICommentMapper { // } if (comment.noteable_id) { const ticket_id = await this.utils.getTicketUuidFromRemoteId( - String(comment.noteable_iid), + String(comment.noteable_id), 'gitlab' ) if (ticket_id) { - opts.ticket_id = ticket_id; + opts = { ...opts, ticket_id }; } } diff --git a/packages/api/swagger/swagger-spec.json b/packages/api/swagger/swagger-spec.json index a33cc91c7..93f667a72 100644 --- a/packages/api/swagger/swagger-spec.json +++ b/packages/api/swagger/swagger-spec.json @@ -477,73 +477,131 @@ ] } }, - "/linked-users": { - "post": { - "operationId": "addLinkedUser", - "summary": "Add Linked User", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateLinkedUserDto" - } + "/crm/companies": { + "get": { + "operationId": "getCompanies", + "summary": "List a batch of Companies", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" } } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "linked-users" - ] - }, - "get": { - "operationId": "fetchLinkedUsers", - "summary": "Retrieve Linked Users", - "parameters": [], + ], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "linked-users" + "crm/companies" ] - } - }, - "/linked-users/batch": { + }, "post": { - "operationId": "addBatchLinkedUsers", - "summary": "Add Batch Linked Users", - "parameters": [], + "operationId": "addCompany", + "summary": "Create a Company", + "description": "Create a company in any supported Crm software", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateBatchLinkedUserDto" + "$ref": "#/components/schemas/UnifiedCompanyInput" } } } }, "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + ] + } + } + } + }, "201": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } } }, "tags": [ - "linked-users" + "crm/companies" ] - } - }, - "/linked-users/single": { - "get": { - "operationId": "getLinkedUser", - "summary": "Retrieve a Linked User", + }, + "patch": { + "operationId": "updateCompany", + "summary": "Update a Company", "parameters": [ { "name": "id", @@ -556,259 +614,291 @@ ], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "linked-users" + "crm/companies" ] } }, - "/linked-users/fromRemoteId": { + "/crm/companies/{id}": { "get": { - "operationId": "linkedUserFromRemoteId", - "summary": "Retrieve a Linked User From A Remote Id", + "operationId": "getCompany", + "summary": "Retrieve a Company", + "description": "Retrieve a company from any connected Crm software", "parameters": [ { - "name": "remoteId", + "name": "id", "required": true, - "in": "query", + "in": "path", + "description": "id of the company you want to retrieve.", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } } ], "responses": { "200": { - "description": "" - } - }, - "tags": [ - "linked-users" - ] - } - }, - "/organisations": { - "get": { - "operationId": "getOrganisations", - "summary": "Retrieve Organisations", - "parameters": [], - "responses": { - "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "organisations" + "crm/companies" ] } }, - "/organisations/create": { + "/crm/companies/batch": { "post": { - "operationId": "createOrganisation", - "summary": "Create an Organisation", - "parameters": [], + "operationId": "addCompanies", + "summary": "Add a batch of Companies", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateOrganizationDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedCompanyInput" + } } } } }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "organisations" - ] - } - }, - "/projects": { - "get": { - "operationId": "getProjects", - "summary": "Retrieve projects", - "parameters": [], "responses": { "200": { - "description": "" - } - }, - "tags": [ - "projects" - ] - }, - "post": { - "operationId": "createProject", - "summary": "Create a project", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateProjectDto" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + ] + } } } - } - }, - "responses": { + }, "201": { - "description": "" - } - }, - "tags": [ - "projects" - ] - } - }, - "/field-mappings/entities": { - "get": { - "operationId": "getFieldMappingsEntities", - "summary": "Retrieve field mapping entities", - "parameters": [], - "responses": { - "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedCompanyOutput" + } + } + } + } } }, "tags": [ - "field-mappings" + "crm/companies" ] } }, - "/field-mappings/attribute": { + "/crm/contacts": { "get": { - "operationId": "getFieldMappings", - "summary": "Retrieve field mappings", - "parameters": [], - "responses": { - "200": { - "description": "" + "operationId": "getContacts", + "summary": "List a batch of CRM Contacts", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original CRM software.", + "schema": { + "type": "boolean" + } } - }, - "tags": [ - "field-mappings" - ] - } - }, - "/field-mappings/value": { - "get": { - "operationId": "getFieldMappingValues", - "summary": "Retrieve field mappings values", - "parameters": [], + ], "responses": { "200": { - "description": "" - } - }, - "tags": [ - "field-mappings" - ] - } - }, - "/field-mappings/define": { - "post": { - "operationId": "defineTargetField", - "summary": "Define target Field", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DefineTargetFieldDto" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } + ] + } } } } }, - "responses": { - "201": { - "description": "" - } - }, "tags": [ - "field-mappings" + "crm/contacts" ] - } - }, - "/field-mappings": { + }, "post": { - "operationId": "createCustomField", - "summary": "Create Custom Field", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomFieldCreateDto" - } + "operationId": "addContact", + "summary": "Create CRM Contact", + "description": "Create a contact in any supported CRM", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original CRM software.", + "schema": { + "type": "boolean" } } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "field-mappings" - ] - } - }, - "/field-mappings/map": { - "post": { - "operationId": "mapField", - "summary": "Map Custom Field", - "parameters": [], + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MapFieldToProviderDto" + "$ref": "#/components/schemas/UnifiedContactInput" } } } }, "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } + ] + } + } + } + }, "201": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } } }, "tags": [ - "field-mappings" + "crm/contacts" ] - } - }, - "/field-mappings/properties": { - "get": { - "operationId": "getCustomProviderProperties", - "summary": "Retrieve Custom Properties", + }, + "patch": { + "operationId": "updateContact", + "summary": "Update a CRM Contact", "parameters": [ { - "name": "linkedUserId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "providerId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "vertical", + "name": "id", "required": true, "in": "query", "schema": { @@ -818,161 +908,224 @@ ], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } } }, "tags": [ - "field-mappings" + "crm/contacts" ] } }, - "/events": { + "/crm/contacts/{id}": { "get": { - "operationId": "getEvents", - "summary": "Retrieve Events", + "operationId": "getContact", + "summary": "Retrieve a CRM Contact", + "description": "Retrieve a contact from any connected CRM", "parameters": [ { - "name": "page", - "required": false, - "in": "query", + "name": "id", + "required": true, + "in": "path", + "description": "id of the `contact` you want to retrive.", "schema": { - "minimum": 1, - "default": 1, - "type": "number" + "type": "string" } }, { - "name": "pageSize", + "name": "remote_data", "required": false, "in": "query", + "description": "Set to true to include data from the original CRM software.", "schema": { - "minimum": 1, - "default": 10, - "type": "number" + "type": "boolean" } } ], - "responses": { - "200": { - "description": "" - } - }, - "tags": [ - "events" - ] - } - }, - "/events/count": { - "get": { - "operationId": "getEventsCount", - "summary": "Retrieve Events Count", - "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { - "type": "number" + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } + ] } } } } }, "tags": [ - "events" + "crm/contacts" ] } }, - "/magic-links": { + "/crm/contacts/batch": { "post": { - "operationId": "createMagicLink", - "summary": "Create a Magic Link", - "parameters": [], + "operationId": "addContacts", + "summary": "Add a batch of CRM Contacts", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original CRM software.", + "schema": { + "type": "boolean" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateMagicLinkDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedContactInput" + } } } } }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "magic-links" - ] - }, - "get": { - "operationId": "getMagicLinks", - "summary": "Retrieve Magic Links", - "parameters": [], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } + ] + } + } + } + }, + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedContactOutput" + } + } + } + } } }, "tags": [ - "magic-links" + "crm/contacts" ] } }, - "/magic-links/single": { + "/crm/deals": { "get": { - "operationId": "getMagicLink", - "summary": "Retrieve a Magic Link", + "operationId": "getDeals", + "summary": "List a batch of Deals", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "query", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } } ], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "magic-links" + "crm/deals" ] - } - }, - "/passthrough": { + }, "post": { - "operationId": "passthroughRequest", - "summary": "Make a passthrough request", + "operationId": "addDeal", + "summary": "Create a Deal", + "description": "Create a deal in any supported Crm software", "parameters": [ { - "name": "integrationId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "linkedUserId", + "name": "x-connection-token", "required": true, - "in": "query", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } }, { - "name": "vertical", - "required": true, + "name": "remote_data", + "required": false, "in": "query", + "description": "Set to true to include data from the original Crm software.", "schema": { - "type": "string" + "type": "boolean" } } ], @@ -981,7 +1134,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PassThroughRequestDto" + "$ref": "#/components/schemas/UnifiedDealInput" } } } @@ -992,7 +1145,18 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PassThroughResponse" + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + ] } } } @@ -1002,196 +1166,75 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PassThroughResponse" + "$ref": "#/components/schemas/UnifiedDealOutput" } } } } }, "tags": [ - "passthrough" - ] - } - }, - "/connections-strategies/create": { - "post": { - "operationId": "createConnectionStrategy", - "summary": "Create Connection Strategy", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionStrategyDto" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "connections-strategies" - ] - } - }, - "/connections-strategies/toggle": { - "post": { - "operationId": "toggleConnectionStrategy", - "summary": "Activate/Deactivate Connection Strategy", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToggleStrategyDto" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "connections-strategies" - ] - } - }, - "/connections-strategies/delete": { - "post": { - "operationId": "deleteConnectionStrategy", - "summary": "Delete Connection Strategy", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteCSDto" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "connections-strategies" - ] - } - }, - "/connections-strategies/update": { - "post": { - "operationId": "updateConnectionStrategy", - "summary": "Update Connection Strategy", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCSDto" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "connections-strategies" - ] - } - }, - "/connections-strategies/credentials": { - "post": { - "operationId": "getConnectionStrategyCredentials", - "summary": "Get Connection Strategy Credential", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionStrategyCredentials" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "connections-strategies" + "crm/deals" ] } }, - "/connections-strategies/getCredentials": { + "/crm/deals/{id}": { "get": { - "operationId": "getCredentials", - "summary": "Fetch credentials info needed for connections", + "operationId": "getDeal", + "summary": "Retrieve a Deal", + "description": "Retrieve a deal from any connected Crm software", "parameters": [ { - "name": "projectId", + "name": "id", "required": true, - "in": "query", + "in": "path", + "description": "id of the deal you want to retrieve.", "schema": { "type": "string" } }, { - "name": "type", - "required": true, + "name": "remote_data", + "required": false, "in": "query", + "description": "Set to true to include data from the original Crm software.", "schema": { - "type": "string" + "type": "boolean" } } ], "responses": { "200": { - "description": "" - } - }, - "tags": [ - "connections-strategies" - ] - } - }, - "/connections-strategies/getConnectionStrategiesForProject": { - "get": { - "operationId": "getConnectionStrategiesForProject", - "summary": "Fetch All Connection Strategies for Project", - "parameters": [], - "responses": { - "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "connections-strategies" + "crm/deals" ] - } - }, - "/syncs/status/{vertical}": { - "get": { - "operationId": "getSyncStatus", - "summary": "Retrieve sync status of a certain vertical", + }, + "patch": { + "operationId": "updateDeal", + "summary": "Update a Deal", "parameters": [ { - "name": "vertical", + "name": "id", "required": true, "in": "path", "schema": { @@ -1201,42 +1244,114 @@ ], "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + ] + } + } + } } }, "tags": [ - "syncs" + "crm/deals" ] } }, - "/syncs/resyncs/{vertical}": { - "get": { - "operationId": "resync", - "summary": "Resync common objects across a vertical", + "/crm/deals/batch": { + "post": { + "operationId": "addDeals", + "summary": "Add a batch of Deals", "parameters": [ { - "name": "vertical", + "name": "x-connection-token", "required": true, - "in": "path", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedDealInput" + } + } + } + } + }, "responses": { "200": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + ] + } + } + } + }, + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedDealOutput" + } + } + } + } } }, "tags": [ - "syncs" + "crm/deals" ] } }, - "/crm/companies": { + "/crm/engagements": { "get": { - "operationId": "getCompanies", - "summary": "List a batch of Companies", + "operationId": "getEngagements", + "summary": "List a batch of Engagements", "parameters": [ { "name": "x-connection-token", @@ -1270,7 +1385,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedEngagementOutput" } } } @@ -1281,13 +1396,13 @@ } }, "tags": [ - "crm/companies" + "crm/engagements" ] }, "post": { - "operationId": "addCompany", - "summary": "Create a Company", - "description": "Create a company in any supported Crm software", + "operationId": "addEngagement", + "summary": "Create a Engagement", + "description": "Create a engagement in any supported Crm software", "parameters": [ { "name": "x-connection-token", @@ -1313,7 +1428,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedCompanyInput" + "$ref": "#/components/schemas/UnifiedEngagementInput" } } } @@ -1331,7 +1446,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedEngagementOutput" } } } @@ -1345,29 +1460,147 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedEngagementOutput" } } } } }, "tags": [ - "crm/companies" + "crm/engagements" ] }, "patch": { - "operationId": "updateCompany", - "summary": "Update a Company", + "operationId": "updateEngagement", + "summary": "Update a Engagement", + "parameters": [ + { + "name": "id", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedEngagementOutput" + } + } + } + ] + } + } + } + } + }, + "tags": [ + "crm/engagements" + ] + } + }, + "/crm/engagements/{id}": { + "get": { + "operationId": "getEngagement", + "summary": "Retrieve a Engagement", + "description": "Retrieve a engagement from any connected Crm software", "parameters": [ { "name": "id", "required": true, + "in": "path", + "description": "id of the engagement you want to retrieve.", + "schema": { + "type": "string" + } + }, + { + "name": "remote_data", + "required": false, "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedEngagementOutput" + } + } + } + ] + } + } + } + } + }, + "tags": [ + "crm/engagements" + ] + } + }, + "/crm/engagements/batch": { + "post": { + "operationId": "addEngagements", + "summary": "Add a batch of Engagements", + "parameters": [ + { + "name": "x-connection-token", + "required": true, + "in": "header", + "description": "The connection token", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedEngagementInput" + } + } + } } - ], + }, "responses": { "200": { "description": "", @@ -1381,7 +1614,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedEngagementOutput" } } } @@ -1389,24 +1622,36 @@ } } } + }, + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedEngagementOutput" + } + } + } + } } }, "tags": [ - "crm/companies" + "crm/engagements" ] } }, - "/crm/companies/{id}": { + "/crm/notes": { "get": { - "operationId": "getCompany", - "summary": "Retrieve a Company", - "description": "Retrieve a company from any connected Crm software", + "operationId": "getNotes", + "summary": "List a batch of Notes", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "path", - "description": "id of the company you want to retrieve.", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } @@ -1434,7 +1679,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedNoteOutput" } } } @@ -1445,14 +1690,13 @@ } }, "tags": [ - "crm/companies" + "crm/notes" ] - } - }, - "/crm/companies/batch": { + }, "post": { - "operationId": "addCompanies", - "summary": "Add a batch of Companies", + "operationId": "addNote", + "summary": "Create a Note", + "description": "Create a note in any supported Crm software", "parameters": [ { "name": "x-connection-token", @@ -1478,10 +1722,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedCompanyInput" - } + "$ref": "#/components/schemas/UnifiedNoteInput" } } } @@ -1499,7 +1740,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" + "$ref": "#/components/schemas/UnifiedNoteOutput" } } } @@ -1513,30 +1754,28 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedCompanyOutput" - } + "$ref": "#/components/schemas/UnifiedNoteOutput" } } } } }, "tags": [ - "crm/companies" + "crm/notes" ] } }, - "/crm/contacts": { + "/crm/notes/{id}": { "get": { - "operationId": "getContacts", - "summary": "List a batch of CRM Contacts", + "operationId": "getNote", + "summary": "Retrieve a Note", + "description": "Retrieve a note from any connected Crm software", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "path", + "description": "id of the note you want to retrieve.", "schema": { "type": "string" } @@ -1545,7 +1784,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original CRM software.", + "description": "Set to true to include data from the original Crm software.", "schema": { "type": "boolean" } @@ -1564,7 +1803,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" + "$ref": "#/components/schemas/UnifiedNoteOutput" } } } @@ -1575,13 +1814,14 @@ } }, "tags": [ - "crm/contacts" + "crm/notes" ] - }, + } + }, + "/crm/notes/batch": { "post": { - "operationId": "addContact", - "summary": "Create CRM Contact", - "description": "Create a contact in any supported CRM", + "operationId": "addNotes", + "summary": "Add a batch of Notes", "parameters": [ { "name": "x-connection-token", @@ -1596,7 +1836,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original CRM software.", + "description": "Set to true to include data from the original Crm software.", "schema": { "type": "boolean" } @@ -1607,7 +1847,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedContactInput" + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedNoteInput" + } } } } @@ -1625,7 +1868,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" + "$ref": "#/components/schemas/UnifiedNoteOutput" } } } @@ -1639,57 +1882,30 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedContactOutput" - } - } - } - } - }, - "tags": [ - "crm/contacts" - ] - }, - "patch": { - "operationId": "updateContact", - "summary": "Update a CRM Contact", - "parameters": [ - { - "name": "id", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedContactOutput" + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedNoteOutput" + } } } } } }, "tags": [ - "crm/contacts" + "crm/notes" ] } }, - "/crm/contacts/{id}": { + "/crm/stages": { "get": { - "operationId": "getContact", - "summary": "Retrieve a CRM Contact", - "description": "Retrieve a contact from any connected CRM", + "operationId": "getStages", + "summary": "List a batch of Stages", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "path", - "description": "id of the `contact` you want to retrive.", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } @@ -1698,7 +1914,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original CRM software.", + "description": "Set to true to include data from the original Crm software.", "schema": { "type": "boolean" } @@ -1717,7 +1933,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" + "$ref": "#/components/schemas/UnifiedStageOutput" } } } @@ -1728,20 +1944,21 @@ } }, "tags": [ - "crm/contacts" + "crm/stages" ] } }, - "/crm/contacts/batch": { - "post": { - "operationId": "addContacts", - "summary": "Add a batch of CRM Contacts", + "/crm/stages/{id}": { + "get": { + "operationId": "getStage", + "summary": "Retrieve a Stage", + "description": "Retrieve a stage from any connected Crm software", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "path", + "description": "id of the stage you want to retrieve.", "schema": { "type": "string" } @@ -1750,25 +1967,12 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original CRM software.", + "description": "Set to true to include data from the original Crm software.", "schema": { "type": "boolean" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedContactInput" - } - } - } - } - }, "responses": { "200": { "description": "", @@ -1782,7 +1986,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" + "$ref": "#/components/schemas/UnifiedStageOutput" } } } @@ -1790,30 +1994,17 @@ } } } - }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedContactOutput" - } - } - } - } } }, "tags": [ - "crm/contacts" + "crm/stages" ] } }, - "/crm/deals": { + "/crm/tasks": { "get": { - "operationId": "getDeals", - "summary": "List a batch of Deals", + "operationId": "getTasks", + "summary": "List a batch of Tasks", "parameters": [ { "name": "x-connection-token", @@ -1847,7 +2038,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -1858,13 +2049,13 @@ } }, "tags": [ - "crm/deals" + "crm/tasks" ] }, "post": { - "operationId": "addDeal", - "summary": "Create a Deal", - "description": "Create a deal in any supported Crm software", + "operationId": "addTask", + "summary": "Create a Task", + "description": "Create a task in any supported Crm software", "parameters": [ { "name": "x-connection-token", @@ -1890,7 +2081,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedDealInput" + "$ref": "#/components/schemas/UnifiedTaskInput" } } } @@ -1908,7 +2099,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -1922,39 +2113,26 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } } }, "tags": [ - "crm/deals" + "crm/tasks" ] - } - }, - "/crm/deals/{id}": { - "get": { - "operationId": "getDeal", - "summary": "Retrieve a Deal", - "description": "Retrieve a deal from any connected Crm software", + }, + "patch": { + "operationId": "updateTask", + "summary": "Update a Task", "parameters": [ { "name": "id", "required": true, - "in": "path", - "description": "id of the deal you want to retrieve.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", "schema": { - "type": "boolean" + "type": "string" } } ], @@ -1971,7 +2149,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -1982,20 +2160,33 @@ } }, "tags": [ - "crm/deals" - ] - }, - "patch": { - "operationId": "updateDeal", - "summary": "Update a Deal", + "crm/tasks" + ] + } + }, + "/crm/tasks/{id}": { + "get": { + "operationId": "getTask", + "summary": "Retrieve a Task", + "description": "Retrieve a task from any connected Crm software", "parameters": [ { "name": "id", "required": true, "in": "path", + "description": "id of the task you want to retrieve.", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Crm software.", + "schema": { + "type": "boolean" + } } ], "responses": { @@ -2011,7 +2202,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -2022,14 +2213,14 @@ } }, "tags": [ - "crm/deals" + "crm/tasks" ] } }, - "/crm/deals/batch": { + "/crm/tasks/batch": { "post": { - "operationId": "addDeals", - "summary": "Add a batch of Deals", + "operationId": "addTasks", + "summary": "Add a batch of Tasks", "parameters": [ { "name": "x-connection-token", @@ -2057,7 +2248,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/UnifiedDealInput" + "$ref": "#/components/schemas/UnifiedTaskInput" } } } @@ -2076,7 +2267,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -2092,7 +2283,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/UnifiedDealOutput" + "$ref": "#/components/schemas/UnifiedTaskOutput" } } } @@ -2100,14 +2291,14 @@ } }, "tags": [ - "crm/deals" + "crm/tasks" ] } }, - "/crm/engagements": { + "/crm/users": { "get": { - "operationId": "getEngagements", - "summary": "List a batch of Engagements", + "operationId": "getUsers", + "summary": "List a batch of Users", "parameters": [ { "name": "x-connection-token", @@ -2141,7 +2332,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" + "$ref": "#/components/schemas/UnifiedUserOutput" } } } @@ -2152,19 +2343,21 @@ } }, "tags": [ - "crm/engagements" + "crm/users" ] - }, - "post": { - "operationId": "addEngagement", - "summary": "Create a Engagement", - "description": "Create a engagement in any supported Crm software", + } + }, + "/crm/users/{id}": { + "get": { + "operationId": "getUser", + "summary": "Retrieve a User", + "description": "Retrieve a user from any connected Crm software", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "path", + "description": "id of the user you want to retrieve.", "schema": { "type": "string" } @@ -2179,16 +2372,6 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedEngagementInput" - } - } - } - }, "responses": { "200": { "description": "", @@ -2202,7 +2385,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" + "$ref": "#/components/schemas/UnifiedUserOutput" } } } @@ -2210,33 +2393,35 @@ } } } - }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" - } - } - } } }, "tags": [ - "crm/engagements" + "crm/users" ] - }, - "patch": { - "operationId": "updateEngagement", - "summary": "Update a Engagement", + } + }, + "/ticketing/accounts": { + "get": { + "operationId": "getAccounts", + "summary": "List a batch of Accounts", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "query", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Ticketing software.", + "schema": { + "type": "boolean" + } } ], "responses": { @@ -2252,7 +2437,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" + "$ref": "#/components/schemas/UnifiedAccountOutput" } } } @@ -2263,21 +2448,21 @@ } }, "tags": [ - "crm/engagements" + "ticketing/accounts" ] } }, - "/crm/engagements/{id}": { + "/ticketing/accounts/{id}": { "get": { - "operationId": "getEngagement", - "summary": "Retrieve a Engagement", - "description": "Retrieve a engagement from any connected Crm software", + "operationId": "getAccount", + "summary": "Retrieve an Account", + "description": "Retrieve an account from any connected Ticketing software", "parameters": [ { "name": "id", "required": true, "in": "path", - "description": "id of the engagement you want to retrieve.", + "description": "id of the account you want to retrieve.", "schema": { "type": "string" } @@ -2286,7 +2471,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2305,7 +2490,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" + "$ref": "#/components/schemas/UnifiedAccountOutput" } } } @@ -2316,14 +2501,14 @@ } }, "tags": [ - "crm/engagements" + "ticketing/accounts" ] } }, - "/crm/engagements/batch": { - "post": { - "operationId": "addEngagements", - "summary": "Add a batch of Engagements", + "/ticketing/collections": { + "get": { + "operationId": "getCollections", + "summary": "List a batch of Collections", "parameters": [ { "name": "x-connection-token", @@ -2338,25 +2523,12 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedEngagementInput" - } - } - } - } - }, "responses": { "200": { "description": "", @@ -2370,7 +2542,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" + "$ref": "#/components/schemas/UnifiedCollectionOutput" } } } @@ -2378,30 +2550,70 @@ } } } + } + }, + "tags": [ + "ticketing/collections" + ] + } + }, + "/ticketing/collections/{id}": { + "get": { + "operationId": "getCollection", + "summary": "Retrieve a Collection", + "description": "Retrieve a collection from any connected Ticketing software", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "id of the collection you want to retrieve.", + "schema": { + "type": "string" + } }, - "201": { + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Ticketing software.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { "description": "", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedEngagementOutput" - } + "allOf": [ + { + "$ref": "#/components/schemas/ApiResponse" + }, + { + "properties": { + "data": { + "$ref": "#/components/schemas/UnifiedCollectionOutput" + } + } + } + ] } } } } }, "tags": [ - "crm/engagements" + "ticketing/collections" ] } }, - "/crm/notes": { + "/ticketing/comments": { "get": { - "operationId": "getNotes", - "summary": "List a batch of Notes", + "operationId": "getComments", + "summary": "List a batch of Comments", "parameters": [ { "name": "x-connection-token", @@ -2416,7 +2628,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2435,7 +2647,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } @@ -2446,13 +2658,13 @@ } }, "tags": [ - "crm/notes" + "ticketing/comments" ] }, "post": { - "operationId": "addNote", - "summary": "Create a Note", - "description": "Create a note in any supported Crm software", + "operationId": "addComment", + "summary": "Create a Comment", + "description": "Create a comment in any supported Ticketing software", "parameters": [ { "name": "x-connection-token", @@ -2467,7 +2679,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2478,7 +2690,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedNoteInput" + "$ref": "#/components/schemas/UnifiedCommentInput" } } } @@ -2496,7 +2708,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } @@ -2510,28 +2722,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } } }, "tags": [ - "crm/notes" + "ticketing/comments" ] } }, - "/crm/notes/{id}": { + "/ticketing/comments/{id}": { "get": { - "operationId": "getNote", - "summary": "Retrieve a Note", - "description": "Retrieve a note from any connected Crm software", + "operationId": "getComment", + "summary": "Retrieve a Comment", + "description": "Retrieve a comment from any connected Ticketing software", "parameters": [ { "name": "id", "required": true, "in": "path", - "description": "id of the note you want to retrieve.", + "description": "id of the `comment` you want to retrive.", "schema": { "type": "string" } @@ -2540,7 +2752,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2559,7 +2771,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } @@ -2570,14 +2782,14 @@ } }, "tags": [ - "crm/notes" + "ticketing/comments" ] } }, - "/crm/notes/batch": { + "/ticketing/comments/batch": { "post": { - "operationId": "addNotes", - "summary": "Add a batch of Notes", + "operationId": "addComments", + "summary": "Add a batch of Comments", "parameters": [ { "name": "x-connection-token", @@ -2592,7 +2804,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2605,7 +2817,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/UnifiedNoteInput" + "$ref": "#/components/schemas/UnifiedCommentInput" } } } @@ -2624,7 +2836,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } @@ -2640,7 +2852,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/UnifiedNoteOutput" + "$ref": "#/components/schemas/UnifiedCommentOutput" } } } @@ -2648,14 +2860,14 @@ } }, "tags": [ - "crm/notes" + "ticketing/comments" ] } }, - "/crm/stages": { + "/ticketing/contacts": { "get": { - "operationId": "getStages", - "summary": "List a batch of Stages", + "operationId": "getContacts", + "summary": "List a batch of Contacts", "parameters": [ { "name": "x-connection-token", @@ -2670,7 +2882,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2689,7 +2901,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedStageOutput" + "$ref": "#/components/schemas/UnifiedContactOutput" } } } @@ -2700,21 +2912,21 @@ } }, "tags": [ - "crm/stages" + "ticketing/contacts" ] } }, - "/crm/stages/{id}": { + "/ticketing/contacts/{id}": { "get": { - "operationId": "getStage", - "summary": "Retrieve a Stage", - "description": "Retrieve a stage from any connected Crm software", + "operationId": "getContact", + "summary": "Retrieve a Contact", + "description": "Retrieve a contact from any connected Ticketing software", "parameters": [ { "name": "id", "required": true, "in": "path", - "description": "id of the stage you want to retrieve.", + "description": "id of the contact you want to retrieve.", "schema": { "type": "string" } @@ -2723,7 +2935,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2742,7 +2954,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedStageOutput" + "$ref": "#/components/schemas/UnifiedContactOutput" } } } @@ -2753,14 +2965,14 @@ } }, "tags": [ - "crm/stages" + "ticketing/contacts" ] } }, - "/crm/tasks": { + "/ticketing/tags": { "get": { - "operationId": "getTasks", - "summary": "List a batch of Tasks", + "operationId": "getTags", + "summary": "List a batch of Tags", "parameters": [ { "name": "x-connection-token", @@ -2775,7 +2987,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2794,7 +3006,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedTaskOutput" + "$ref": "#/components/schemas/UnifiedTagOutput" } } } @@ -2805,19 +3017,21 @@ } }, "tags": [ - "crm/tasks" + "ticketing/tags" ] - }, - "post": { - "operationId": "addTask", - "summary": "Create a Task", - "description": "Create a task in any supported Crm software", + } + }, + "/ticketing/tags/{id}": { + "get": { + "operationId": "getTag", + "summary": "Retrieve a Tag", + "description": "Retrieve a tag from any connected Ticketing software", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "path", + "description": "id of the tag you want to retrieve.", "schema": { "type": "string" } @@ -2826,22 +3040,12 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedTaskInput" - } - } - } - }, "responses": { "200": { "description": "", @@ -2855,7 +3059,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedTaskOutput" + "$ref": "#/components/schemas/UnifiedTagOutput" } } } @@ -2863,33 +3067,35 @@ } } } - }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedTaskOutput" - } - } - } } }, "tags": [ - "crm/tasks" + "ticketing/tags" ] - }, - "patch": { - "operationId": "updateTask", - "summary": "Update a Task", + } + }, + "/ticketing/teams": { + "get": { + "operationId": "getTeams", + "summary": "List a batch of Teams", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "query", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } + }, + { + "name": "remote_data", + "required": false, + "in": "query", + "description": "Set to true to include data from the original Ticketing software.", + "schema": { + "type": "boolean" + } } ], "responses": { @@ -2905,7 +3111,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedTaskOutput" + "$ref": "#/components/schemas/UnifiedTeamOutput" } } } @@ -2916,21 +3122,21 @@ } }, "tags": [ - "crm/tasks" + "ticketing/teams" ] } }, - "/crm/tasks/{id}": { + "/ticketing/teams/{id}": { "get": { - "operationId": "getTask", - "summary": "Retrieve a Task", - "description": "Retrieve a task from any connected Crm software", + "operationId": "getTeam", + "summary": "Retrieve a Team", + "description": "Retrieve a team from any connected Ticketing software", "parameters": [ { "name": "id", "required": true, "in": "path", - "description": "id of the task you want to retrieve.", + "description": "id of the team you want to retrieve.", "schema": { "type": "string" } @@ -2939,7 +3145,7 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } @@ -2958,7 +3164,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedTaskOutput" + "$ref": "#/components/schemas/UnifiedTeamOutput" } } } @@ -2969,14 +3175,14 @@ } }, "tags": [ - "crm/tasks" + "ticketing/teams" ] } }, - "/crm/tasks/batch": { - "post": { - "operationId": "addTasks", - "summary": "Add a batch of Tasks", + "/ticketing/tickets": { + "get": { + "operationId": "getTickets", + "summary": "List a batch of Tickets", "parameters": [ { "name": "x-connection-token", @@ -2991,25 +3197,12 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedTaskInput" - } - } - } - } - }, "responses": { "200": { "description": "", @@ -3023,7 +3216,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedTaskOutput" + "$ref": "#/components/schemas/UnifiedTicketOutput" } } } @@ -3031,30 +3224,16 @@ } } } - }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedTaskOutput" - } - } - } - } } }, "tags": [ - "crm/tasks" + "ticketing/tickets" ] - } - }, - "/crm/users": { - "get": { - "operationId": "getUsers", - "summary": "List a batch of Users", + }, + "post": { + "operationId": "addTicket", + "summary": "Create a Ticket", + "description": "Create a ticket in any supported Ticketing software", "parameters": [ { "name": "x-connection-token", @@ -3069,12 +3248,22 @@ "name": "remote_data", "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", + "description": "Set to true to include data from the original Ticketing software.", "schema": { "type": "boolean" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnifiedTicketInput" + } + } + } + }, "responses": { "200": { "description": "", @@ -3088,7 +3277,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedUserOutput" + "$ref": "#/components/schemas/UnifiedTicketOutput" } } } @@ -3096,35 +3285,32 @@ } } } + }, + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnifiedTicketOutput" + } + } + } } }, "tags": [ - "crm/users" + "ticketing/tickets" ] - } - }, - "/crm/users/{id}": { - "get": { - "operationId": "getUser", - "summary": "Retrieve a User", - "description": "Retrieve a user from any connected Crm software", + }, + "patch": { + "operationId": "updateTicket", + "summary": "Update a Ticket", "parameters": [ { "name": "id", "required": true, - "in": "path", - "description": "id of the user you want to retrieve.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, "in": "query", - "description": "Set to true to include data from the original Crm software.", "schema": { - "type": "boolean" + "type": "string" } } ], @@ -3134,38 +3320,28 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedUserOutput" - } - } - } - ] + "$ref": "#/components/schemas/UnifiedTicketOutput" } } } } }, "tags": [ - "crm/users" + "ticketing/tickets" ] } }, - "/ticketing/accounts": { + "/ticketing/tickets/{id}": { "get": { - "operationId": "getAccounts", - "summary": "List a batch of Accounts", + "operationId": "getTicket", + "summary": "Retrieve a Ticket", + "description": "Retrieve a ticket from any connected Ticketing software", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "path", + "description": "id of the `ticket` you want to retrive.", "schema": { "type": "string" } @@ -3193,7 +3369,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedAccountOutput" + "$ref": "#/components/schemas/UnifiedTicketOutput" } } } @@ -3204,21 +3380,20 @@ } }, "tags": [ - "ticketing/accounts" + "ticketing/tickets" ] } }, - "/ticketing/accounts/{id}": { - "get": { - "operationId": "getAccount", - "summary": "Retrieve an Account", - "description": "Retrieve an account from any connected Ticketing software", + "/ticketing/tickets/batch": { + "post": { + "operationId": "addTickets", + "summary": "Add a batch of Tickets", "parameters": [ { - "name": "id", + "name": "x-connection-token", "required": true, - "in": "path", - "description": "id of the account you want to retrieve.", + "in": "header", + "description": "The connection token", "schema": { "type": "string" } @@ -3233,6 +3408,19 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedTicketInput" + } + } + } + } + }, "responses": { "200": { "description": "", @@ -3246,7 +3434,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedAccountOutput" + "$ref": "#/components/schemas/UnifiedTicketOutput" } } } @@ -3254,17 +3442,30 @@ } } } + }, + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnifiedTicketOutput" + } + } + } + } } }, "tags": [ - "ticketing/accounts" + "ticketing/tickets" ] } }, - "/ticketing/collections": { + "/ticketing/users": { "get": { - "operationId": "getCollections", - "summary": "List a batch of Collections", + "operationId": "getUsers", + "summary": "List a batch of Users", "parameters": [ { "name": "x-connection-token", @@ -3298,7 +3499,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCollectionOutput" + "$ref": "#/components/schemas/UnifiedUserOutput" } } } @@ -3309,21 +3510,21 @@ } }, "tags": [ - "ticketing/collections" + "ticketing/users" ] } }, - "/ticketing/collections/{id}": { + "/ticketing/users/{id}": { "get": { - "operationId": "getCollection", - "summary": "Retrieve a Collection", - "description": "Retrieve a collection from any connected Ticketing software", + "operationId": "getUser", + "summary": "Retrieve a User", + "description": "Retrieve a user from any connected Ticketing software", "parameters": [ { "name": "id", "required": true, "in": "path", - "description": "id of the collection you want to retrieve.", + "description": "id of the user you want to retrieve.", "schema": { "type": "string" } @@ -3351,7 +3552,7 @@ { "properties": { "data": { - "$ref": "#/components/schemas/UnifiedCollectionOutput" + "$ref": "#/components/schemas/UnifiedUserOutput" } } } @@ -3362,651 +3563,506 @@ } }, "tags": [ - "ticketing/collections" + "ticketing/users" ] } }, - "/ticketing/comments": { + "/linked-users": { + "post": { + "operationId": "addLinkedUser", + "summary": "Add Linked User", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateLinkedUserDto" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "linked-users" + ] + }, "get": { - "operationId": "getComments", - "summary": "List a batch of Comments", + "operationId": "fetchLinkedUsers", + "summary": "Retrieve Linked Users", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "linked-users" + ] + } + }, + "/linked-users/batch": { + "post": { + "operationId": "addBatchLinkedUsers", + "summary": "Add Batch Linked Users", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBatchLinkedUserDto" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "linked-users" + ] + } + }, + "/linked-users/single": { + "get": { + "operationId": "getLinkedUser", + "summary": "Retrieve a Linked User", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", + "in": "query", "schema": { "type": "string" } - }, + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "linked-users" + ] + } + }, + "/linked-users/fromRemoteId": { + "get": { + "operationId": "linkedUserFromRemoteId", + "summary": "Retrieve a Linked User From A Remote Id", + "parameters": [ { - "name": "remote_data", - "required": false, + "name": "remoteId", + "required": true, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "type": "string" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } - ] - } + "description": "" + } + }, + "tags": [ + "linked-users" + ] + } + }, + "/organisations": { + "get": { + "operationId": "getOrganisations", + "summary": "Retrieve Organisations", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "organisations" + ] + } + }, + "/organisations/create": { + "post": { + "operationId": "createOrganisation", + "summary": "Create an Organisation", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrganizationDto" } } } }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "organisations" + ] + } + }, + "/projects": { + "get": { + "operationId": "getProjects", + "summary": "Retrieve projects", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, "tags": [ - "ticketing/comments" + "projects" ] }, "post": { - "operationId": "addComment", - "summary": "Create a Comment", - "description": "Create a comment in any supported Ticketing software", - "parameters": [ - { - "name": "x-connection-token", - "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } - } - ], + "operationId": "createProject", + "summary": "Create a project", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedCommentInput" + "$ref": "#/components/schemas/CreateProjectDto" } } } }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } - ] - } - } - } - }, "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } + "description": "" } }, "tags": [ - "ticketing/comments" + "projects" ] } }, - "/ticketing/comments/{id}": { + "/field-mappings/entities": { "get": { - "operationId": "getComment", - "summary": "Retrieve a Comment", - "description": "Retrieve a comment from any connected Ticketing software", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "id of the `comment` you want to retrive.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } + "operationId": "getFieldMappingsEntities", + "summary": "Retrieve field mapping entities", + "parameters": [], + "responses": { + "200": { + "description": "" } - ], + }, + "tags": [ + "field-mappings" + ] + } + }, + "/field-mappings/attribute": { + "get": { + "operationId": "getFieldMappings", + "summary": "Retrieve field mappings", + "parameters": [], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/comments" + "field-mappings" ] } }, - "/ticketing/comments/batch": { - "post": { - "operationId": "addComments", - "summary": "Add a batch of Comments", - "parameters": [ - { - "name": "x-connection-token", - "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } + "/field-mappings/value": { + "get": { + "operationId": "getFieldMappingValues", + "summary": "Retrieve field mappings values", + "parameters": [], + "responses": { + "200": { + "description": "" } - ], + }, + "tags": [ + "field-mappings" + ] + } + }, + "/field-mappings/define": { + "post": { + "operationId": "defineTargetField", + "summary": "Define target Field", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedCommentInput" - } + "$ref": "#/components/schemas/DefineTargetFieldDto" } } } }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } - ] - } - } - } - }, "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedCommentOutput" - } - } - } - } + "description": "" } }, "tags": [ - "ticketing/comments" + "field-mappings" ] } }, - "/ticketing/contacts": { - "get": { - "operationId": "getContacts", - "summary": "List a batch of Contacts", - "parameters": [ - { - "name": "x-connection-token", - "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" - } - } - } - ] - } + "/field-mappings": { + "post": { + "operationId": "createCustomField", + "summary": "Create Custom Field", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomFieldCreateDto" } } } }, + "responses": { + "201": { + "description": "" + } + }, "tags": [ - "ticketing/contacts" + "field-mappings" ] } }, - "/ticketing/contacts/{id}": { - "get": { - "operationId": "getContact", - "summary": "Retrieve a Contact", - "description": "Retrieve a contact from any connected Ticketing software", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "id of the contact you want to retrieve.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" + "/field-mappings/map": { + "post": { + "operationId": "mapField", + "summary": "Map Custom Field", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MapFieldToProviderDto" + } } } - ], + }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedContactOutput" - } - } - } - ] - } - } - } + "201": { + "description": "" } }, "tags": [ - "ticketing/contacts" + "field-mappings" ] } }, - "/ticketing/tags": { + "/field-mappings/properties": { "get": { - "operationId": "getTags", - "summary": "List a batch of Tags", + "operationId": "getCustomProviderProperties", + "summary": "Retrieve Custom Properties", "parameters": [ { - "name": "x-connection-token", + "name": "linkedUserId", "required": true, - "in": "header", - "description": "The connection token", + "in": "query", "schema": { "type": "string" } }, { - "name": "remote_data", - "required": false, + "name": "providerId", + "required": true, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "type": "string" + } + }, + { + "name": "vertical", + "required": true, + "in": "query", + "schema": { + "type": "string" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTagOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/tags" + "field-mappings" ] } }, - "/ticketing/tags/{id}": { + "/events": { "get": { - "operationId": "getTag", - "summary": "Retrieve a Tag", - "description": "Retrieve a tag from any connected Ticketing software", + "operationId": "getEvents", + "summary": "Retrieve Events", "parameters": [ { - "name": "id", - "required": true, - "in": "path", - "description": "id of the tag you want to retrieve.", + "name": "page", + "required": false, + "in": "query", "schema": { - "type": "string" + "minimum": 1, + "default": 1, + "type": "number" } }, { - "name": "remote_data", + "name": "pageSize", "required": false, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "minimum": 1, + "default": 10, + "type": "number" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTagOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/tags" + "events" ] } }, - "/ticketing/teams": { + "/events/count": { "get": { - "operationId": "getTeams", - "summary": "List a batch of Teams", - "parameters": [ - { - "name": "x-connection-token", - "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } - } - ], + "operationId": "getEventsCount", + "summary": "Retrieve Events Count", + "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTeamOutput" - } - } - } - ] + "type": "number" } } } } }, "tags": [ - "ticketing/teams" + "events" ] } }, - "/ticketing/teams/{id}": { - "get": { - "operationId": "getTeam", - "summary": "Retrieve a Team", - "description": "Retrieve a team from any connected Ticketing software", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "id of the team you want to retrieve.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTeamOutput" - } - } - } - ] - } + "/magic-links": { + "post": { + "operationId": "createMagicLink", + "summary": "Create a Magic Link", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMagicLinkDto" } } } }, + "responses": { + "201": { + "description": "" + } + }, "tags": [ - "ticketing/teams" + "magic-links" + ] + }, + "get": { + "operationId": "getMagicLinks", + "summary": "Retrieve Magic Links", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "magic-links" ] } }, - "/ticketing/tickets": { + "/magic-links/single": { "get": { - "operationId": "getTickets", - "summary": "List a batch of Tickets", + "operationId": "getMagicLink", + "summary": "Retrieve a Magic Link", "parameters": [ { - "name": "x-connection-token", + "name": "id", "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "type": "string" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/tickets" + "magic-links" ] - }, + } + }, + "/passthrough": { "post": { - "operationId": "addTicket", - "summary": "Create a Ticket", - "description": "Create a ticket in any supported Ticketing software", + "operationId": "passthroughRequest", + "summary": "Make a passthrough request", "parameters": [ { - "name": "x-connection-token", + "name": "integrationId", "required": true, - "in": "header", - "description": "The connection token", + "in": "query", "schema": { "type": "string" } }, { - "name": "remote_data", - "required": false, + "name": "linkedUserId", + "required": true, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "type": "string" + } + }, + { + "name": "vertical", + "required": true, + "in": "query", + "schema": { + "type": "string" } } ], @@ -4015,7 +4071,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedTicketInput" + "$ref": "#/components/schemas/PassThroughRequestDto" } } } @@ -4026,18 +4082,7 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } - } - } - ] + "$ref": "#/components/schemas/PassThroughResponse" } } } @@ -4047,279 +4092,234 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnifiedTicketOutput" + "$ref": "#/components/schemas/PassThroughResponse" } } } } }, "tags": [ - "ticketing/tickets" + "passthrough" ] - }, - "patch": { - "operationId": "updateTicket", - "summary": "Update a Ticket", - "parameters": [ - { - "name": "id", - "required": true, - "in": "query", - "schema": { - "type": "string" + } + }, + "/connections-strategies/create": { + "post": { + "operationId": "createConnectionStrategy", + "summary": "Create Connection Strategy", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionStrategyDto" + } } } - ], + }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } + "201": { + "description": "" + } + }, + "tags": [ + "connections-strategies" + ] + } + }, + "/connections-strategies/toggle": { + "post": { + "operationId": "toggleConnectionStrategy", + "summary": "Activate/Deactivate Connection Strategy", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ToggleStrategyDto" } } } }, + "responses": { + "201": { + "description": "" + } + }, "tags": [ - "ticketing/tickets" + "connections-strategies" ] } }, - "/ticketing/tickets/{id}": { - "get": { - "operationId": "getTicket", - "summary": "Retrieve a Ticket", - "description": "Retrieve a ticket from any connected Ticketing software", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "id of the `ticket` you want to retrive.", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" + "/connections-strategies/delete": { + "post": { + "operationId": "deleteConnectionStrategy", + "summary": "Delete Connection Strategy", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteCSDto" + } } } - ], + }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } - } - } - ] - } + "201": { + "description": "" + } + }, + "tags": [ + "connections-strategies" + ] + } + }, + "/connections-strategies/update": { + "post": { + "operationId": "updateConnectionStrategy", + "summary": "Update Connection Strategy", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCSDto" } } } }, + "responses": { + "201": { + "description": "" + } + }, "tags": [ - "ticketing/tickets" + "connections-strategies" ] } }, - "/ticketing/tickets/batch": { + "/connections-strategies/credentials": { "post": { - "operationId": "addTickets", - "summary": "Add a batch of Tickets", - "parameters": [ - { - "name": "x-connection-token", - "required": true, - "in": "header", - "description": "The connection token", - "schema": { - "type": "string" - } - }, - { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", - "schema": { - "type": "boolean" - } - } - ], + "operationId": "getConnectionStrategyCredentials", + "summary": "Get Connection Strategy Credential", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedTicketInput" - } + "$ref": "#/components/schemas/ConnectionStrategyCredentials" } } } }, "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } - } - } - ] - } - } - } - }, "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedTicketOutput" - } - } - } - } + "description": "" } }, "tags": [ - "ticketing/tickets" + "connections-strategies" ] } }, - "/ticketing/users": { + "/connections-strategies/getCredentials": { "get": { - "operationId": "getUsers", - "summary": "List a batch of Users", + "operationId": "getCredentials", + "summary": "Fetch credentials info needed for connections", "parameters": [ { - "name": "x-connection-token", + "name": "projectId", "required": true, - "in": "header", - "description": "The connection token", + "in": "query", "schema": { "type": "string" } }, { - "name": "remote_data", - "required": false, + "name": "type", + "required": true, "in": "query", - "description": "Set to true to include data from the original Ticketing software.", "schema": { - "type": "boolean" + "type": "string" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedUserOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/users" + "connections-strategies" ] } }, - "/ticketing/users/{id}": { + "/connections-strategies/getConnectionStrategiesForProject": { "get": { - "operationId": "getUser", - "summary": "Retrieve a User", - "description": "Retrieve a user from any connected Ticketing software", + "operationId": "getConnectionStrategiesForProject", + "summary": "Fetch All Connection Strategies for Project", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "connections-strategies" + ] + } + }, + "/syncs/status/{vertical}": { + "get": { + "operationId": "getSyncStatus", + "summary": "Retrieve sync status of a certain vertical", "parameters": [ { - "name": "id", + "name": "vertical", "required": true, "in": "path", - "description": "id of the user you want to retrieve.", "schema": { "type": "string" } - }, + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "syncs" + ] + } + }, + "/syncs/resyncs/{vertical}": { + "get": { + "operationId": "resync", + "summary": "Resync common objects across a vertical", + "parameters": [ { - "name": "remote_data", - "required": false, - "in": "query", - "description": "Set to true to include data from the original Ticketing software.", + "name": "vertical", + "required": true, + "in": "path", "schema": { - "type": "boolean" + "type": "string" } } ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ApiResponse" - }, - { - "properties": { - "data": { - "$ref": "#/components/schemas/UnifiedUserOutput" - } - } - } - ] - } - } - } + "description": "" } }, "tags": [ - "ticketing/users" + "syncs" ] } }, @@ -4850,470 +4850,612 @@ "secret" ] }, - "CreateLinkedUserDto": { + "ApiResponse": { "type": "object", "properties": { - "linked_user_origin_id": { + "message": { "type": "string" }, - "alias": { + "error": { "type": "string" }, - "id_project": { - "type": "string" + "statusCode": { + "type": "number" } }, "required": [ - "linked_user_origin_id", - "alias", - "id_project" + "statusCode" ] }, - "CreateBatchLinkedUserDto": { + "Email": { "type": "object", "properties": { - "linked_user_origin_ids": { - "type": "array", - "items": { - "type": "string" - } + "email_address": { + "type": "string", + "description": "The email address" }, - "alias": { - "type": "string" + "email_address_type": { + "type": "string", + "description": "The email address type. Authorized values are either PERSONAL or WORK." }, - "id_project": { - "type": "string" + "owner_type": { + "type": "string", + "description": "The owner type of an email" } }, "required": [ - "linked_user_origin_ids", - "alias", - "id_project" + "email_address", + "email_address_type" ] }, - "CreateOrganizationDto": { + "Address": { "type": "object", "properties": { - "name": { - "type": "string" + "street_1": { + "type": "string", + "description": "The street" + }, + "street_2": { + "type": "string", + "description": "More information about the street " + }, + "city": { + "type": "string", + "description": "The city" + }, + "state": { + "type": "string", + "description": "The state" + }, + "postal_code": { + "type": "string", + "description": "The postal code" + }, + "country": { + "type": "string", + "description": "The country." + }, + "address_type": { + "type": "string", + "description": "The address type. Authorized values are either PERSONAL or WORK." }, - "stripe_customer_id": { - "type": "string" + "owner_type": { + "type": "string", + "description": "The owner type of the address" } }, "required": [ - "name", - "stripe_customer_id" + "street_1", + "street_2", + "city", + "state", + "postal_code", + "country", + "address_type", + "owner_type" ] }, - "CreateProjectDto": { + "Phone": { "type": "object", "properties": { - "name": { - "type": "string" + "phone_number": { + "type": "string", + "description": "The phone number starting with a plus (+) followed by the country code (e.g +336676778890 for France)" }, - "id_organization": { - "type": "string" + "phone_type": { + "type": "string", + "description": "The phone type. Authorized values are either MOBILE or WORK" }, - "id_user": { - "type": "string" + "owner_type": { + "type": "string", + "description": "The owner type of a phone number" } }, "required": [ - "name", - "id_user" + "phone_number", + "phone_type" ] }, - "DefineTargetFieldDto": { + "UnifiedCompanyOutput": { "type": "object", "properties": { - "object_type_owner": { - "type": "string" - }, "name": { - "type": "string" + "type": "string", + "description": "The name of the company" }, - "description": { - "type": "string" + "industry": { + "type": "string", + "description": "The industry of the company. Authorized values can be found in the Industry enum." }, - "data_type": { - "type": "string" - } - }, - "required": [ - "object_type_owner", - "name", - "description", - "data_type" - ] - }, - "CustomFieldCreateDto": { - "type": "object", - "properties": { - "object_type_owner": { - "type": "string" + "number_of_employees": { + "type": "number", + "description": "The number of employees of the company" }, - "name": { - "type": "string" + "user_id": { + "type": "string", + "description": "The uuid of the user who owns the company" }, - "description": { - "type": "string" + "email_addresses": { + "description": "The email addresses of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Email" + } }, - "data_type": { - "type": "string" + "addresses": { + "description": "The addresses of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Address" + } }, - "source_custom_field_id": { - "type": "string" + "phone_numbers": { + "description": "The phone numbers of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Phone" + } }, - "source_provider": { - "type": "string" + "field_mappings": { + "type": "object", + "properties": {} }, - "linked_user_id": { - "type": "string" + "id": { + "type": "string", + "description": "The uuid of the company" + }, + "remote_id": { + "type": "string", + "description": "The id of the company in the context of the Crm 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, "required": [ - "object_type_owner", "name", - "description", - "data_type", - "source_custom_field_id", - "source_provider", - "linked_user_id" + "field_mappings", + "remote_data" ] }, - "MapFieldToProviderDto": { + "UnifiedCompanyInput": { "type": "object", "properties": { - "attributeId": { - "type": "string" + "name": { + "type": "string", + "description": "The name of the company" }, - "source_custom_field_id": { - "type": "string" + "industry": { + "type": "string", + "description": "The industry of the company. Authorized values can be found in the Industry enum." }, - "source_provider": { - "type": "string" + "number_of_employees": { + "type": "number", + "description": "The number of employees of the company" }, - "linked_user_id": { - "type": "string" - } - }, - "required": [ - "attributeId", - "source_custom_field_id", - "source_provider", - "linked_user_id" - ] - }, - "CreateMagicLinkDto": { - "type": "object", - "properties": { - "linked_user_origin_id": { - "type": "string" + "user_id": { + "type": "string", + "description": "The uuid of the user who owns the company" }, - "email": { - "type": "string" + "email_addresses": { + "description": "The email addresses of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Email" + } }, - "alias": { - "type": "string" + "addresses": { + "description": "The addresses of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Address" + } }, - "id_project": { - "type": "string" + "phone_numbers": { + "description": "The phone numbers of the company", + "type": "array", + "items": { + "$ref": "#/components/schemas/Phone" + } + }, + "field_mappings": { + "type": "object", + "properties": {} } }, "required": [ - "linked_user_origin_id", - "email", - "alias", - "id_project" + "name", + "field_mappings" ] }, - "PassThroughRequestDto": { + "UnifiedContactOutput": { "type": "object", "properties": { - "method": { - "enum": [ - "GET", - "POST", - "PATCH", - "DELETE", - "PUT" - ], - "type": "string" + "name": { + "type": "string", + "description": "The name of the contact" }, - "path": { - "type": "string" + "email_address": { + "type": "string", + "description": "The email address of the contact" }, - "data": { - "type": "object" + "phone_number": { + "type": "string", + "description": "The phone number of the contact" }, - "headers": { - "type": "object" - } - }, - "required": [ - "method", - "path" - ] - }, - "PassThroughResponse": { - "type": "object", - "properties": { - "url": { - "type": "string" + "details": { + "type": "string", + "description": "The details of the contact" }, - "status": { - "type": "number" + "field_mappings": { + "type": "object", + "properties": {} }, - "data": { - "type": "object" + "id": { + "type": "string", + "description": "The uuid of the contact" + }, + "remote_id": { + "type": "string", + "description": "The id of the contact in the context of the 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, - "required": [ - "url", - "status", - "data" + "required": [ + "name", + "email_address", + "field_mappings", + "remote_data" ] }, - "CreateConnectionStrategyDto": { + "UnifiedContactInput": { "type": "object", "properties": { - "type": { - "type": "string" + "first_name": { + "type": "string", + "description": "The first name of the contact" }, - "attributes": { + "last_name": { + "type": "string", + "description": "The last name of the contact" + }, + "email_addresses": { + "description": "The email addresses of the contact", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/Email" } }, - "values": { + "phone_numbers": { + "description": "The phone numbers of the contact", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/Phone" } + }, + "addresses": { + "description": "The addresses of the contact", + "type": "array", + "items": { + "$ref": "#/components/schemas/Address" + } + }, + "user_id": { + "type": "string", + "description": "The uuid of the user who owns the contact" + }, + "field_mappings": { + "type": "object", + "properties": {} } }, "required": [ - "type", - "attributes", - "values" - ] - }, - "ToggleStrategyDto": { - "type": "object", - "properties": { - "id_cs": { - "type": "string" - } - }, - "required": [ - "id_cs" + "first_name", + "last_name", + "field_mappings" ] }, - "DeleteCSDto": { + "UnifiedDealOutput": { "type": "object", "properties": { + "name": { + "type": "string", + "description": "The name of the deal" + }, + "description": { + "type": "string", + "description": "The description of the deal" + }, + "amount": { + "type": "number", + "description": "The amount of the deal" + }, + "user_id": { + "type": "string", + "description": "The uuid of the user who is on the deal" + }, + "stage_id": { + "type": "string", + "description": "The uuid of the stage of the deal" + }, + "company_id": { + "type": "string", + "description": "The uuid of the company tied to the deal" + }, + "field_mappings": { + "type": "object", + "properties": {} + }, "id": { - "type": "string" + "type": "string", + "description": "The uuid of the deal" + }, + "remote_id": { + "type": "string", + "description": "The id of the deal in the context of the Crm 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, "required": [ - "id" + "name", + "description", + "amount", + "field_mappings", + "remote_data" ] }, - "UpdateCSDto": { + "UnifiedDealInput": { "type": "object", "properties": { - "id_cs": { - "type": "string" + "name": { + "type": "string", + "description": "The name of the deal" }, - "status": { - "type": "boolean" + "description": { + "type": "string", + "description": "The description of the deal" }, - "attributes": { - "type": "array", - "items": { - "type": "string" - } + "amount": { + "type": "number", + "description": "The amount of the deal" }, - "values": { - "type": "array", - "items": { - "type": "string" - } + "user_id": { + "type": "string", + "description": "The uuid of the user who is on the deal" + }, + "stage_id": { + "type": "string", + "description": "The uuid of the stage of the deal" + }, + "company_id": { + "type": "string", + "description": "The uuid of the company tied to the deal" + }, + "field_mappings": { + "type": "object", + "properties": {} } }, "required": [ - "id_cs", - "status", - "attributes", - "values" + "name", + "description", + "amount", + "field_mappings" ] }, - "ConnectionStrategyCredentials": { + "UnifiedEngagementOutput": { "type": "object", "properties": { + "content": { + "type": "string", + "description": "The content of the engagement" + }, + "direction": { + "type": "string", + "description": "The direction of the engagement. Authorized values are INBOUND or OUTBOUND" + }, + "subject": { + "type": "string", + "description": "The subject of the engagement" + }, + "start_at": { + "format": "date-time", + "type": "string", + "description": "The start time of the engagement" + }, + "end_time": { + "format": "date-time", + "type": "string", + "description": "The end time of the engagement" + }, "type": { - "type": "string" + "type": "string", + "description": "The type of the engagement. Authorized values are EMAIL, CALL or MEETING" }, - "attributes": { + "user_id": { + "type": "string", + "description": "The uuid of the user tied to the engagement" + }, + "company_id": { + "type": "string", + "description": "The uuid of the company tied to the engagement" + }, + "contacts": { + "description": "The uuids of contacts tied to the engagement object", "type": "array", "items": { "type": "string" } + }, + "field_mappings": { + "type": "object", + "properties": {} + }, + "id": { + "type": "string", + "description": "The uuid of the engagement" + }, + "remote_id": { + "type": "string", + "description": "The id of the engagement in the context of the Crm 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, "required": [ "type", - "attributes" + "field_mappings", + "remote_data" ] }, - "ApiResponse": { + "UnifiedEngagementInput": { "type": "object", "properties": { - "message": { - "type": "string" + "content": { + "type": "string", + "description": "The content of the engagement" }, - "error": { - "type": "string" + "direction": { + "type": "string", + "description": "The direction of the engagement. Authorized values are INBOUND or OUTBOUND" }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "statusCode" - ] - }, - "Email": { - "type": "object", - "properties": { - "email_address": { + "subject": { "type": "string", - "description": "The email address" + "description": "The subject of the engagement" }, - "email_address_type": { + "start_at": { + "format": "date-time", "type": "string", - "description": "The email address type. Authorized values are either PERSONAL or WORK." + "description": "The start time of the engagement" }, - "owner_type": { + "end_time": { + "format": "date-time", + "type": "string", + "description": "The end time of the engagement" + }, + "type": { + "type": "string", + "description": "The type of the engagement. Authorized values are EMAIL, CALL or MEETING" + }, + "user_id": { + "type": "string", + "description": "The uuid of the user tied to the engagement" + }, + "company_id": { "type": "string", - "description": "The owner type of an email" + "description": "The uuid of the company tied to the engagement" + }, + "contacts": { + "description": "The uuids of contacts tied to the engagement object", + "type": "array", + "items": { + "type": "string" + } + }, + "field_mappings": { + "type": "object", + "properties": {} } }, "required": [ - "email_address", - "email_address_type" + "type", + "field_mappings" ] }, - "Address": { + "UnifiedNoteOutput": { "type": "object", "properties": { - "street_1": { + "content": { "type": "string", - "description": "The street" + "description": "The content of the note" }, - "street_2": { + "user_id": { "type": "string", - "description": "More information about the street " + "description": "The uuid of the user tied the note" }, - "city": { + "company_id": { "type": "string", - "description": "The city" + "description": "The uuid of the company tied to the note" }, - "state": { + "contact_id": { "type": "string", - "description": "The state" + "description": "The uuid fo the contact tied to the note" }, - "postal_code": { + "deal_id": { "type": "string", - "description": "The postal code" + "description": "The uuid of the deal tied to the note" }, - "country": { - "type": "string", - "description": "The country." + "field_mappings": { + "type": "object", + "properties": {} }, - "address_type": { + "id": { "type": "string", - "description": "The address type. Authorized values are either PERSONAL or WORK." + "description": "The uuid of the note" }, - "owner_type": { + "remote_id": { "type": "string", - "description": "The owner type of the address" + "description": "The id of the note in the context of the Crm 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, "required": [ - "street_1", - "street_2", - "city", - "state", - "postal_code", - "country", - "address_type", - "owner_type" + "content", + "field_mappings", + "remote_data" ] }, - "Phone": { + "UnifiedNoteInput": { "type": "object", "properties": { - "phone_number": { + "content": { "type": "string", - "description": "The phone number starting with a plus (+) followed by the country code (e.g +336676778890 for France)" + "description": "The content of the note" }, - "phone_type": { + "user_id": { "type": "string", - "description": "The phone type. Authorized values are either MOBILE or WORK" + "description": "The uuid of the user tied the note" }, - "owner_type": { + "company_id": { "type": "string", - "description": "The owner type of a phone number" + "description": "The uuid of the company tied to the note" + }, + "contact_id": { + "type": "string", + "description": "The uuid fo the contact tied to the note" + }, + "deal_id": { + "type": "string", + "description": "The uuid of the deal tied to the note" + }, + "field_mappings": { + "type": "object", + "properties": {} } }, "required": [ - "phone_number", - "phone_type" + "content", + "field_mappings" ] }, - "UnifiedCompanyOutput": { + "UnifiedStageOutput": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the company" - }, - "industry": { - "type": "string", - "description": "The industry of the company. Authorized values can be found in the Industry enum." - }, - "number_of_employees": { - "type": "number", - "description": "The number of employees of the company" - }, - "user_id": { + "stage_name": { "type": "string", - "description": "The uuid of the user who owns the company" - }, - "email_addresses": { - "description": "The email addresses of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Email" - } - }, - "addresses": { - "description": "The addresses of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Address" - } - }, - "phone_numbers": { - "description": "The phone numbers of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Phone" - } + "description": "The name of the stage" }, "field_mappings": { "type": "object", @@ -5321,11 +5463,11 @@ }, "id": { "type": "string", - "description": "The uuid of the company" + "description": "The uuid of the stage" }, "remote_id": { "type": "string", - "description": "The id of the company in the context of the Crm 3rd Party" + "description": "The id of the stage in the context of the Crm 3rd Party" }, "remote_data": { "type": "object", @@ -5333,177 +5475,181 @@ } }, "required": [ - "name", + "stage_name", "field_mappings", "remote_data" ] }, - "UnifiedCompanyInput": { + "UnifiedTaskOutput": { "type": "object", "properties": { - "name": { + "subject": { "type": "string", - "description": "The name of the company" + "description": "The subject of the task" }, - "industry": { + "content": { "type": "string", - "description": "The industry of the company. Authorized values can be found in the Industry enum." + "description": "The content of the task" }, - "number_of_employees": { - "type": "number", - "description": "The number of employees of the company" + "status": { + "type": "string", + "description": "The status of the task. Authorized values are PENDING, COMPLETED." }, - "user_id": { + "due_date": { + "format": "date-time", "type": "string", - "description": "The uuid of the user who owns the company" + "description": "The due date of the task" }, - "email_addresses": { - "description": "The email addresses of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Email" - } + "finished_date": { + "format": "date-time", + "type": "string", + "description": "The finished date of the task" }, - "addresses": { - "description": "The addresses of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Address" - } + "user_id": { + "type": "string", + "description": "The uuid of the user tied to the task" }, - "phone_numbers": { - "description": "The phone numbers of the company", - "type": "array", - "items": { - "$ref": "#/components/schemas/Phone" - } + "company_id": { + "type": "string", + "description": "The uuid fo the company tied to the task" + }, + "deal_id": { + "type": "string", + "description": "The uuid of the deal tied to the task" }, "field_mappings": { "type": "object", "properties": {} + }, + "id": { + "type": "string", + "description": "The uuid of the task" + }, + "remote_id": { + "type": "string", + "description": "The id of the task in the context of the Crm 3rd Party" + }, + "remote_data": { + "type": "object", + "properties": {} } }, "required": [ - "name", - "field_mappings" + "subject", + "content", + "status", + "field_mappings", + "remote_data" ] }, - "UnifiedContactOutput": { + "UnifiedTaskInput": { "type": "object", "properties": { - "name": { + "subject": { "type": "string", - "description": "The name of the contact" + "description": "The subject of the task" }, - "email_address": { + "content": { "type": "string", - "description": "The email address of the contact" + "description": "The content of the task" }, - "phone_number": { + "status": { "type": "string", - "description": "The phone number of the contact" + "description": "The status of the task. Authorized values are PENDING, COMPLETED." }, - "details": { + "due_date": { + "format": "date-time", "type": "string", - "description": "The details of the contact" + "description": "The due date of the task" }, - "field_mappings": { - "type": "object", - "properties": {} + "finished_date": { + "format": "date-time", + "type": "string", + "description": "The finished date of the task" }, - "id": { + "user_id": { "type": "string", - "description": "The uuid of the contact" + "description": "The uuid of the user tied to the task" }, - "remote_id": { + "company_id": { "type": "string", - "description": "The id of the contact in the context of the 3rd Party" + "description": "The uuid fo the company tied to the task" }, - "remote_data": { + "deal_id": { + "type": "string", + "description": "The uuid of the deal tied to the task" + }, + "field_mappings": { "type": "object", "properties": {} } }, "required": [ - "name", - "email_address", - "field_mappings", - "remote_data" + "subject", + "content", + "status", + "field_mappings" ] }, - "UnifiedContactInput": { + "UnifiedUserOutput": { "type": "object", "properties": { - "first_name": { + "name": { "type": "string", - "description": "The first name of the contact" + "description": "The name of the user" }, - "last_name": { + "email_address": { "type": "string", - "description": "The last name of the contact" + "description": "The email address of the user" }, - "email_addresses": { - "description": "The email addresses of the contact", + "teams": { + "description": "The teams whose the user is part of", "type": "array", "items": { - "$ref": "#/components/schemas/Email" + "type": "string" } }, - "phone_numbers": { - "description": "The phone numbers of the contact", - "type": "array", - "items": { - "$ref": "#/components/schemas/Phone" - } + "account_id": { + "type": "string", + "description": "The account or organization the user is part of" }, - "addresses": { - "description": "The addresses of the contact", - "type": "array", - "items": { - "$ref": "#/components/schemas/Address" - } + "field_mappings": { + "type": "object", + "properties": {} }, - "user_id": { + "id": { "type": "string", - "description": "The uuid of the user who owns the contact" + "description": "The uuid of the user" }, - "field_mappings": { + "remote_id": { + "type": "string", + "description": "The id of the user in the context of the 3rd Party" + }, + "remote_data": { "type": "object", "properties": {} } }, "required": [ - "first_name", - "last_name", - "field_mappings" + "name", + "email_address", + "field_mappings", + "remote_data" ] }, - "UnifiedDealOutput": { + "UnifiedAccountOutput": { "type": "object", "properties": { "name": { "type": "string", - "description": "The name of the deal" - }, - "description": { - "type": "string", - "description": "The description of the deal" - }, - "amount": { - "type": "number", - "description": "The amount of the deal" - }, - "user_id": { - "type": "string", - "description": "The uuid of the user who is on the deal" - }, - "stage_id": { - "type": "string", - "description": "The uuid of the stage of the deal" + "description": "The name of the account" }, - "company_id": { - "type": "string", - "description": "The uuid of the company tied to the deal" + "domains": { + "description": "The domains of the account", + "type": "array", + "items": { + "type": "string" + } }, "field_mappings": { "type": "object", @@ -5511,11 +5657,11 @@ }, "id": { "type": "string", - "description": "The uuid of the deal" + "description": "The uuid of the account" }, "remote_id": { "type": "string", - "description": "The id of the deal in the context of the Crm 3rd Party" + "description": "The id of the account in the context of the 3rd Party" }, "remote_data": { "type": "object", @@ -5524,94 +5670,57 @@ }, "required": [ "name", - "description", - "amount", "field_mappings", "remote_data" ] }, - "UnifiedDealInput": { + "UnifiedCollectionOutput": { "type": "object", "properties": { "name": { "type": "string", - "description": "The name of the deal" + "description": "The name of the collection" }, "description": { "type": "string", - "description": "The description of the deal" - }, - "amount": { - "type": "number", - "description": "The amount of the deal" + "description": "The description of the collection" }, - "user_id": { + "collection_type": { "type": "string", - "description": "The uuid of the user who is on the deal" + "description": "The type of the collection. Authorized values are either PROJECT or LIST " }, - "stage_id": { + "id": { "type": "string", - "description": "The uuid of the stage of the deal" + "description": "The uuid of the collection" }, - "company_id": { + "remote_id": { "type": "string", - "description": "The uuid of the company tied to the deal" + "description": "The id of the collection in the context of the 3rd Party" }, - "field_mappings": { + "remote_data": { "type": "object", "properties": {} } }, "required": [ "name", - "description", - "amount", - "field_mappings" + "remote_data" ] }, - "UnifiedEngagementOutput": { + "UnifiedAttachmentOutput": { "type": "object", "properties": { - "content": { - "type": "string", - "description": "The content of the engagement" - }, - "direction": { - "type": "string", - "description": "The direction of the engagement. Authorized values are INBOUND or OUTBOUND" - }, - "subject": { - "type": "string", - "description": "The subject of the engagement" - }, - "start_at": { - "format": "date-time", - "type": "string", - "description": "The start time of the engagement" - }, - "end_time": { - "format": "date-time", - "type": "string", - "description": "The end time of the engagement" - }, - "type": { + "file_name": { "type": "string", - "description": "The type of the engagement. Authorized values are EMAIL, CALL or MEETING" + "description": "The file name of the attachment" }, - "user_id": { + "file_url": { "type": "string", - "description": "The uuid of the user tied to the engagement" + "description": "The file url of the attachment" }, - "company_id": { + "uploader": { "type": "string", - "description": "The uuid of the company tied to the engagement" - }, - "contacts": { - "description": "The uuids of contacts tied to the engagement object", - "type": "array", - "items": { - "type": "string" - } + "description": "The uploader's uuid of the attachment" }, "field_mappings": { "type": "object", @@ -5619,11 +5728,11 @@ }, "id": { "type": "string", - "description": "The uuid of the engagement" + "description": "The uuid of the attachment" }, "remote_id": { "type": "string", - "description": "The id of the engagement in the context of the Crm 3rd Party" + "description": "The id of the attachment in the context of the 3rd Party" }, "remote_data": { "type": "object", @@ -5631,150 +5740,152 @@ } }, "required": [ - "type", + "file_name", + "file_url", + "uploader", "field_mappings", "remote_data" ] }, - "UnifiedEngagementInput": { + "UnifiedCommentOutput": { "type": "object", "properties": { - "content": { + "body": { "type": "string", - "description": "The content of the engagement" + "description": "The body of the comment" }, - "direction": { + "html_body": { "type": "string", - "description": "The direction of the engagement. Authorized values are INBOUND or OUTBOUND" + "description": "The html body of the comment" }, - "subject": { - "type": "string", - "description": "The subject of the engagement" + "is_private": { + "type": "boolean", + "description": "The public status of the comment" }, - "start_at": { - "format": "date-time", + "creator_type": { "type": "string", - "description": "The start time of the engagement" + "description": "The creator type of the comment. Authorized values are either USER or CONTACT" }, - "end_time": { - "format": "date-time", + "ticket_id": { "type": "string", - "description": "The end time of the engagement" + "description": "The uuid of the ticket the comment is tied to" }, - "type": { + "contact_id": { "type": "string", - "description": "The type of the engagement. Authorized values are EMAIL, CALL or MEETING" + "description": "The uuid of the contact which the comment belongs to (if no user_id specified)" }, "user_id": { "type": "string", - "description": "The uuid of the user tied to the engagement" - }, - "company_id": { - "type": "string", - "description": "The uuid of the company tied to the engagement" + "description": "The uuid of the user which the comment belongs to (if no contact_id specified)" }, - "contacts": { - "description": "The uuids of contacts tied to the engagement object", + "attachments": { + "description": "The attachemnets tied to the comment", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/UnifiedAttachmentOutput" } }, - "field_mappings": { + "id": { + "type": "string", + "description": "The uuid of the comment" + }, + "remote_id": { + "type": "string", + "description": "The id of the comment in the context of the 3rd Party" + }, + "remote_data": { "type": "object", "properties": {} } }, "required": [ - "type", - "field_mappings" + "body", + "remote_data" ] }, - "UnifiedNoteOutput": { + "UnifiedCommentInput": { "type": "object", "properties": { - "content": { + "body": { "type": "string", - "description": "The content of the note" + "description": "The body of the comment" }, - "user_id": { + "html_body": { "type": "string", - "description": "The uuid of the user tied the note" + "description": "The html body of the comment" }, - "company_id": { - "type": "string", - "description": "The uuid of the company tied to the note" + "is_private": { + "type": "boolean", + "description": "The public status of the comment" }, - "contact_id": { + "creator_type": { "type": "string", - "description": "The uuid fo the contact tied to the note" + "description": "The creator type of the comment. Authorized values are either USER or CONTACT" }, - "deal_id": { + "ticket_id": { "type": "string", - "description": "The uuid of the deal tied to the note" - }, - "field_mappings": { - "type": "object", - "properties": {} + "description": "The uuid of the ticket the comment is tied to" }, - "id": { + "contact_id": { "type": "string", - "description": "The uuid of the note" + "description": "The uuid of the contact which the comment belongs to (if no user_id specified)" }, - "remote_id": { + "user_id": { "type": "string", - "description": "The id of the note in the context of the Crm 3rd Party" + "description": "The uuid of the user which the comment belongs to (if no contact_id specified)" }, - "remote_data": { - "type": "object", - "properties": {} + "attachments": { + "description": "The attachements uuids tied to the comment", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "content", - "field_mappings", - "remote_data" + "body" ] }, - "UnifiedNoteInput": { + "UnifiedTagOutput": { "type": "object", "properties": { - "content": { - "type": "string", - "description": "The content of the note" - }, - "user_id": { + "name": { "type": "string", - "description": "The uuid of the user tied the note" + "description": "The name of the tag" }, - "company_id": { - "type": "string", - "description": "The uuid of the company tied to the note" + "field_mappings": { + "type": "object", + "properties": {} }, - "contact_id": { + "id": { "type": "string", - "description": "The uuid fo the contact tied to the note" + "description": "The uuid of the tag" }, - "deal_id": { + "remote_id": { "type": "string", - "description": "The uuid of the deal tied to the note" + "description": "The id of the tag in the context of the 3rd Party" }, - "field_mappings": { + "remote_data": { "type": "object", "properties": {} } }, "required": [ - "content", - "field_mappings" + "name", + "field_mappings", + "remote_data" ] }, - "UnifiedStageOutput": { + "UnifiedTeamOutput": { "type": "object", "properties": { - "stage_name": { + "name": { "type": "string", - "description": "The name of the stage" + "description": "The name of the team" + }, + "description": { + "type": "string", + "description": "The description of the team" }, "field_mappings": { "type": "object", @@ -5782,11 +5893,11 @@ }, "id": { "type": "string", - "description": "The uuid of the stage" + "description": "The uuid of the team" }, "remote_id": { "type": "string", - "description": "The id of the stage in the context of the Crm 3rd Party" + "description": "The id of the team in the context of the 3rd Party" }, "remote_data": { "type": "object", @@ -5794,47 +5905,81 @@ } }, "required": [ - "stage_name", + "name", "field_mappings", "remote_data" ] }, - "UnifiedTaskOutput": { + "UnifiedTicketOutput": { "type": "object", "properties": { - "subject": { + "name": { "type": "string", - "description": "The subject of the task" + "description": "The name of the ticket" }, - "content": { + "status": { "type": "string", - "description": "The content of the task" + "description": "The status of the ticket. Authorized values are OPEN or CLOSED." }, - "status": { + "description": { "type": "string", - "description": "The status of the task. Authorized values are PENDING, COMPLETED." + "description": "The description of the ticket" }, "due_date": { "format": "date-time", "type": "string", - "description": "The due date of the task" + "description": "The date the ticket is due" }, - "finished_date": { + "type": { + "type": "string", + "description": "The type of the ticket. Authorized values are PROBLEM, QUESTION, or TASK" + }, + "parent_ticket": { + "type": "string", + "description": "The uuid of the parent ticket" + }, + "project_id": { + "type": "string", + "description": "The uuid of the collection (project) the ticket belongs to" + }, + "tags": { + "description": "The tags names of the ticket", + "type": "array", + "items": { + "type": "string" + } + }, + "completed_at": { "format": "date-time", "type": "string", - "description": "The finished date of the task" + "description": "The date the ticket has been completed" }, - "user_id": { + "priority": { "type": "string", - "description": "The uuid of the user tied to the task" + "description": "The priority of the ticket. Authorized values are HIGH, MEDIUM or LOW." }, - "company_id": { + "assigned_to": { + "description": "The users uuids the ticket is assigned to", + "type": "array", + "items": { + "type": "string" + } + }, + "comment": { + "description": "The comment of the ticket", + "allOf": [ + { + "$ref": "#/components/schemas/UnifiedCommentInput" + } + ] + }, + "account_id": { "type": "string", - "description": "The uuid fo the company tied to the task" + "description": "The uuid of the account which the ticket belongs to" }, - "deal_id": { + "contact_id": { "type": "string", - "description": "The uuid of the deal tied to the task" + "description": "The uuid of the contact which the ticket belongs to" }, "field_mappings": { "type": "object", @@ -5842,11 +5987,11 @@ }, "id": { "type": "string", - "description": "The uuid of the task" + "description": "The uuid of the ticket" }, "remote_id": { "type": "string", - "description": "The id of the task in the context of the Crm 3rd Party" + "description": "The id of the ticket in the context of the 3rd Party" }, "remote_data": { "type": "object", @@ -5854,307 +5999,332 @@ } }, "required": [ - "subject", - "content", - "status", + "name", + "description", "field_mappings", "remote_data" ] }, - "UnifiedTaskInput": { + "UnifiedTicketInput": { "type": "object", "properties": { - "subject": { + "name": { "type": "string", - "description": "The subject of the task" + "description": "The name of the ticket" }, - "content": { + "status": { "type": "string", - "description": "The content of the task" + "description": "The status of the ticket. Authorized values are OPEN or CLOSED." }, - "status": { + "description": { "type": "string", - "description": "The status of the task. Authorized values are PENDING, COMPLETED." + "description": "The description of the ticket" }, "due_date": { "format": "date-time", "type": "string", - "description": "The due date of the task" + "description": "The date the ticket is due" }, - "finished_date": { - "format": "date-time", + "type": { "type": "string", - "description": "The finished date of the task" + "description": "The type of the ticket. Authorized values are PROBLEM, QUESTION, or TASK" }, - "user_id": { + "parent_ticket": { "type": "string", - "description": "The uuid of the user tied to the task" + "description": "The uuid of the parent ticket" }, - "company_id": { + "project_id": { "type": "string", - "description": "The uuid fo the company tied to the task" + "description": "The uuid of the collection (project) the ticket belongs to" }, - "deal_id": { - "type": "string", - "description": "The uuid of the deal tied to the task" + "tags": { + "description": "The tags names of the ticket", + "type": "array", + "items": { + "type": "string" + } }, - "field_mappings": { - "type": "object", - "properties": {} - } - }, - "required": [ - "subject", - "content", - "status", - "field_mappings" - ] - }, - "UnifiedUserOutput": { - "type": "object", - "properties": { - "name": { + "completed_at": { + "format": "date-time", "type": "string", - "description": "The name of the user" + "description": "The date the ticket has been completed" }, - "email_address": { + "priority": { "type": "string", - "description": "The email address of the user" + "description": "The priority of the ticket. Authorized values are HIGH, MEDIUM or LOW." }, - "teams": { - "description": "The teams whose the user is part of", + "assigned_to": { + "description": "The users uuids the ticket is assigned to", "type": "array", "items": { "type": "string" } }, - "account_id": { - "type": "string", - "description": "The account or organization the user is part of" - }, - "field_mappings": { - "type": "object", - "properties": {} + "comment": { + "description": "The comment of the ticket", + "allOf": [ + { + "$ref": "#/components/schemas/UnifiedCommentInput" + } + ] }, - "id": { + "account_id": { "type": "string", - "description": "The uuid of the user" + "description": "The uuid of the account which the ticket belongs to" }, - "remote_id": { + "contact_id": { "type": "string", - "description": "The id of the user in the context of the 3rd Party" + "description": "The uuid of the contact which the ticket belongs to" }, - "remote_data": { + "field_mappings": { "type": "object", "properties": {} } }, "required": [ "name", - "email_address", - "field_mappings", - "remote_data" + "description", + "field_mappings" + ] + }, + "CreateLinkedUserDto": { + "type": "object", + "properties": { + "linked_user_origin_id": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "id_project": { + "type": "string" + } + }, + "required": [ + "linked_user_origin_id", + "alias", + "id_project" ] }, - "UnifiedAccountOutput": { + "CreateBatchLinkedUserDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the account" - }, - "domains": { - "description": "The domains of the account", + "linked_user_origin_ids": { "type": "array", "items": { "type": "string" } }, - "field_mappings": { - "type": "object", - "properties": {} - }, - "id": { - "type": "string", - "description": "The uuid of the account" + "alias": { + "type": "string" }, - "remote_id": { - "type": "string", - "description": "The id of the account in the context of the 3rd Party" + "id_project": { + "type": "string" + } + }, + "required": [ + "linked_user_origin_ids", + "alias", + "id_project" + ] + }, + "CreateOrganizationDto": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "remote_data": { - "type": "object", - "properties": {} + "stripe_customer_id": { + "type": "string" } }, "required": [ "name", - "field_mappings", - "remote_data" + "stripe_customer_id" ] }, - "UnifiedCollectionOutput": { + "CreateProjectDto": { "type": "object", "properties": { "name": { - "type": "string", - "description": "The name of the collection" + "type": "string" }, - "description": { - "type": "string", - "description": "The description of the collection" + "id_organization": { + "type": "string" }, - "collection_type": { - "type": "string", - "description": "The type of the collection. Authorized values are either PROJECT or LIST " + "id_user": { + "type": "string" + } + }, + "required": [ + "name", + "id_user" + ] + }, + "DefineTargetFieldDto": { + "type": "object", + "properties": { + "object_type_owner": { + "type": "string" }, - "id": { - "type": "string", - "description": "The uuid of the collection" + "name": { + "type": "string" }, - "remote_id": { - "type": "string", - "description": "The id of the collection in the context of the 3rd Party" + "description": { + "type": "string" }, - "remote_data": { - "type": "object", - "properties": {} + "data_type": { + "type": "string" } }, "required": [ + "object_type_owner", "name", - "remote_data" + "description", + "data_type" ] }, - "UnifiedAttachmentOutput": { + "CustomFieldCreateDto": { "type": "object", "properties": { - "file_name": { - "type": "string", - "description": "The file name of the attachment" + "object_type_owner": { + "type": "string" }, - "file_url": { - "type": "string", - "description": "The file url of the attachment" + "name": { + "type": "string" }, - "uploader": { - "type": "string", - "description": "The uploader's uuid of the attachment" + "description": { + "type": "string" }, - "field_mappings": { - "type": "object", - "properties": {} + "data_type": { + "type": "string" }, - "id": { - "type": "string", - "description": "The uuid of the attachment" + "source_custom_field_id": { + "type": "string" }, - "remote_id": { - "type": "string", - "description": "The id of the attachment in the context of the 3rd Party" + "source_provider": { + "type": "string" }, - "remote_data": { - "type": "object", - "properties": {} + "linked_user_id": { + "type": "string" } }, "required": [ - "file_name", - "file_url", - "uploader", - "field_mappings", - "remote_data" + "object_type_owner", + "name", + "description", + "data_type", + "source_custom_field_id", + "source_provider", + "linked_user_id" ] }, - "UnifiedCommentOutput": { + "MapFieldToProviderDto": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "The body of the comment" - }, - "html_body": { - "type": "string", - "description": "The html body of the comment" - }, - "is_private": { - "type": "boolean", - "description": "The public status of the comment" - }, - "creator_type": { - "type": "string", - "description": "The creator type of the comment. Authorized values are either USER or CONTACT" - }, - "ticket_id": { - "type": "string", - "description": "The uuid of the ticket the comment is tied to" + "attributeId": { + "type": "string" }, - "contact_id": { - "type": "string", - "description": "The uuid of the contact which the comment belongs to (if no user_id specified)" + "source_custom_field_id": { + "type": "string" }, - "user_id": { - "type": "string", - "description": "The uuid of the user which the comment belongs to (if no contact_id specified)" + "source_provider": { + "type": "string" }, - "attachments": { - "description": "The attachemnets tied to the comment", - "type": "array", - "items": { - "$ref": "#/components/schemas/UnifiedAttachmentOutput" - } + "linked_user_id": { + "type": "string" + } + }, + "required": [ + "attributeId", + "source_custom_field_id", + "source_provider", + "linked_user_id" + ] + }, + "CreateMagicLinkDto": { + "type": "object", + "properties": { + "linked_user_origin_id": { + "type": "string" }, - "id": { - "type": "string", - "description": "The uuid of the comment" + "email": { + "type": "string" }, - "remote_id": { - "type": "string", - "description": "The id of the comment in the context of the 3rd Party" + "alias": { + "type": "string" }, - "remote_data": { - "type": "object", - "properties": {} + "id_project": { + "type": "string" } }, "required": [ - "body", - "remote_data" + "linked_user_origin_id", + "email", + "alias", + "id_project" ] }, - "UnifiedCommentInput": { + "PassThroughRequestDto": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "The body of the comment" + "method": { + "enum": [ + "GET", + "POST", + "PATCH", + "DELETE", + "PUT" + ], + "type": "string" }, - "html_body": { - "type": "string", - "description": "The html body of the comment" + "path": { + "type": "string" }, - "is_private": { - "type": "boolean", - "description": "The public status of the comment" + "data": { + "type": "object" }, - "creator_type": { - "type": "string", - "description": "The creator type of the comment. Authorized values are either USER or CONTACT" + "headers": { + "type": "object" + } + }, + "required": [ + "method", + "path" + ] + }, + "PassThroughResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" }, - "ticket_id": { - "type": "string", - "description": "The uuid of the ticket the comment is tied to" + "status": { + "type": "number" }, - "contact_id": { - "type": "string", - "description": "The uuid of the contact which the comment belongs to (if no user_id specified)" + "data": { + "type": "object" + } + }, + "required": [ + "url", + "status", + "data" + ] + }, + "CreateConnectionStrategyDto": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "user_id": { - "type": "string", - "description": "The uuid of the user which the comment belongs to (if no contact_id specified)" + "attributes": { + "type": "array", + "items": { + "type": "string" + } }, - "attachments": { - "description": "The attachements uuids tied to the comment", + "values": { "type": "array", "items": { "type": "string" @@ -6162,248 +6332,78 @@ } }, "required": [ - "body" + "type", + "attributes", + "values" ] }, - "UnifiedTagOutput": { + "ToggleStrategyDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the tag" - }, - "field_mappings": { - "type": "object", - "properties": {} - }, - "id": { - "type": "string", - "description": "The uuid of the tag" - }, - "remote_id": { - "type": "string", - "description": "The id of the tag in the context of the 3rd Party" - }, - "remote_data": { - "type": "object", - "properties": {} + "id_cs": { + "type": "string" } }, "required": [ - "name", - "field_mappings", - "remote_data" + "id_cs" ] }, - "UnifiedTeamOutput": { + "DeleteCSDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the team" - }, - "description": { - "type": "string", - "description": "The description of the team" - }, - "field_mappings": { - "type": "object", - "properties": {} - }, "id": { - "type": "string", - "description": "The uuid of the team" - }, - "remote_id": { - "type": "string", - "description": "The id of the team in the context of the 3rd Party" - }, - "remote_data": { - "type": "object", - "properties": {} + "type": "string" } }, "required": [ - "name", - "field_mappings", - "remote_data" + "id" ] }, - "UnifiedTicketOutput": { + "UpdateCSDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the ticket" + "id_cs": { + "type": "string" }, "status": { - "type": "string", - "description": "The status of the ticket. Authorized values are OPEN or CLOSED." - }, - "description": { - "type": "string", - "description": "The description of the ticket" - }, - "due_date": { - "format": "date-time", - "type": "string", - "description": "The date the ticket is due" - }, - "type": { - "type": "string", - "description": "The type of the ticket. Authorized values are PROBLEM, QUESTION, or TASK" - }, - "parent_ticket": { - "type": "string", - "description": "The uuid of the parent ticket" - }, - "project_id": { - "type": "string", - "description": "The uuid of the collection (project) the ticket belongs to" + "type": "boolean" }, - "tags": { - "description": "The tags names of the ticket", + "attributes": { "type": "array", "items": { "type": "string" } }, - "completed_at": { - "format": "date-time", - "type": "string", - "description": "The date the ticket has been completed" - }, - "priority": { - "type": "string", - "description": "The priority of the ticket. Authorized values are HIGH, MEDIUM or LOW." - }, - "assigned_to": { - "description": "The users uuids the ticket is assigned to", + "values": { "type": "array", "items": { "type": "string" } - }, - "comment": { - "description": "The comment of the ticket", - "allOf": [ - { - "$ref": "#/components/schemas/UnifiedCommentInput" - } - ] - }, - "account_id": { - "type": "string", - "description": "The uuid of the account which the ticket belongs to" - }, - "contact_id": { - "type": "string", - "description": "The uuid of the contact which the ticket belongs to" - }, - "field_mappings": { - "type": "object", - "properties": {} - }, - "id": { - "type": "string", - "description": "The uuid of the ticket" - }, - "remote_id": { - "type": "string", - "description": "The id of the ticket in the context of the 3rd Party" - }, - "remote_data": { - "type": "object", - "properties": {} } }, "required": [ - "name", - "description", - "field_mappings", - "remote_data" + "id_cs", + "status", + "attributes", + "values" ] }, - "UnifiedTicketInput": { + "ConnectionStrategyCredentials": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the ticket" - }, - "status": { - "type": "string", - "description": "The status of the ticket. Authorized values are OPEN or CLOSED." - }, - "description": { - "type": "string", - "description": "The description of the ticket" - }, - "due_date": { - "format": "date-time", - "type": "string", - "description": "The date the ticket is due" - }, "type": { - "type": "string", - "description": "The type of the ticket. Authorized values are PROBLEM, QUESTION, or TASK" - }, - "parent_ticket": { - "type": "string", - "description": "The uuid of the parent ticket" - }, - "project_id": { - "type": "string", - "description": "The uuid of the collection (project) the ticket belongs to" - }, - "tags": { - "description": "The tags names of the ticket", - "type": "array", - "items": { - "type": "string" - } - }, - "completed_at": { - "format": "date-time", - "type": "string", - "description": "The date the ticket has been completed" - }, - "priority": { - "type": "string", - "description": "The priority of the ticket. Authorized values are HIGH, MEDIUM or LOW." + "type": "string" }, - "assigned_to": { - "description": "The users uuids the ticket is assigned to", + "attributes": { "type": "array", "items": { "type": "string" } - }, - "comment": { - "description": "The comment of the ticket", - "allOf": [ - { - "$ref": "#/components/schemas/UnifiedCommentInput" - } - ] - }, - "account_id": { - "type": "string", - "description": "The uuid of the account which the ticket belongs to" - }, - "contact_id": { - "type": "string", - "description": "The uuid of the contact which the ticket belongs to" - }, - "field_mappings": { - "type": "object", - "properties": {} } }, "required": [ - "name", - "description", - "field_mappings" + "type", + "attributes" ] }, "ProjectConnectorsDto": {