consumes: - application/json produces: - application/json swagger: '2.0' info: description: Hubspot連携アプリケーションAPI仕様 title: Hubspot連携アプリケーション version: 1.0.0 paths: /crm/deal_stages: get: security: - accessToken: [] tags: - fetch_hubspot summary: Get value from Hubspot dealstages Object operationId: getDealStagesOfHubspot responses: '200': description: OK schema: type: array items: $ref: '#/definitions/hubspot_api_name' /crm/hs_lead_statuses: get: security: - accessToken: [] tags: - fetch_hubspot summary: Get value from Hubspot hs_lead_status Object operationId: getHsLeadStatusOfHubspot responses: '200': description: OK schema: type: array items: $ref: '#/definitions/hubspot_api_name' /crm/users: get: security: - accessToken: [] tags: - fetch_hubspot summary: Show list hubspot users API operationId: getHubspotUsers parameters: - type: string name: keyword in: query - type: array items: type: string name: hubspotIds in: query responses: '200': description: OK schema: type: array items: $ref: '#/definitions/hubspotUser' /engagement_sync_settings: get: security: - accessToken: [] tags: - engagement_sync_settings summary: Get EngagementSyncSetting data beetwen Playbook <-> Hubspot operationId: getEngagementSyncSettingOfHubspot responses: '200': description: OK schema: type: array items: $ref: '#/definitions/engagement_sync_setting' put: security: - accessToken: [] tags: - engagement_sync_settings summary: Create/update EngagementSyncSetting data beetwen Playbook <-> Hubspot operationId: saveEngagementSyncSettingOfHubspot parameters: - name: body in: body required: true schema: type: array items: $ref: '#/definitions/engagement_sync_setting' responses: '200': description: OK schema: type: array items: $ref: '#/definitions/engagement_sync_setting' /engagement_sync_settings/{engagement_sync_setting_id}/: delete: security: - accessToken: [] tags: - engagement_sync_settings summary: Delete Engagement sync setting operationId: deleteEngagementSyncSettingOfHubspot responses: '200': description: OK parameters: - type: string format: uuid name: engagement_sync_setting_id in: path required: true /healthcheck: get: tags: - utils summary: ヘルスチェック operationId: healthCheck responses: '200': description: OK /mappings: get: security: - accessToken: [] tags: - mappings summary: Playbook <-> Hubspot の ID の対応関係を取得する operationId: getSyncIDMapOfHubspot parameters: - type: string format: uuid name: sync_setting_id in: query - type: string format: uuid name: mmp_id in: query responses: '200': description: OK schema: $ref: '#/definitions/sync_id_maps' put: security: - accessToken: [] tags: - mappings summary: Playbook <-> Hubspot の ID の対応関係を作成・更新する operationId: saveSyncIDMapOfHubspot parameters: - name: body in: body required: true schema: type: object properties: id_maps: type: array items: type: object properties: hubspot_id: $ref: '#/definitions/hubspot_id' mmp_id: $ref: '#/definitions/mmp_id' sync_setting_id: $ref: '#/definitions/sync_setting_id' responses: '201': description: Created schema: $ref: '#/definitions/sync_id_maps' /mappings/{mapping_id}/: delete: security: - accessToken: [] description: Delete mapping by id of sync_id_mappings table tags: - mappings summary: Delete mapping operationId: deleteSyncIDMapOfHubspot parameters: - $ref: '#/parameters/mapping_id' responses: '200': description: OK /oauth2/authorize/: get: security: - accessToken: [] tags: - oauth2 summary: Hubspot認証・認可 operationId: startHubspotAuth parameters: - type: string format: uri description: リダイレクトURI name: redirect_uri in: query responses: '200': description: JSONリクエストの場合のみ、リダイレクトせずにリダイレクト先URLを返す schema: $ref: '#/definitions/redirect_url' '302': description: Found headers: Location: type: string delete: security: - accessToken: [] tags: - oauth2 summary: Unlink service operationId: deleteHubspotAuth responses: '200': description: OK /oauth2/callback/: get: description: 認可コールバックのエンドポイント tags: - oauth2 summary: Hubspot認可コールバック operationId: callbackHubspotAuth parameters: - type: string name: code in: query - type: string name: state in: query responses: '201': description: OK '302': description: Found headers: Location: type: string /oauth2/results: get: security: - accessToken: [] tags: - oauth2 summary: 認証結果一覧 operationId: listOauthResults responses: '200': description: OK schema: type: object properties: data: type: array items: $ref: '#/definitions/oauthResult' /settings: get: security: - accessToken: [] tags: - settings summary: Hubspot読み込み設定の取得 operationId: getSyncSettingOfHubspot parameters: - type: string name: mmpObject in: query responses: '200': description: OK schema: $ref: '#/definitions/sync_settings' post: security: - accessToken: [] tags: - settings summary: Playbook <-> Hubspot の対応関係設定追加 operationId: createSyncSettingOfHubspot parameters: - name: body in: body required: true schema: type: object properties: auto_sync: type: boolean hubspot_object_name: $ref: '#/definitions/hubspot_object_name' mmp_table_name: $ref: '#/definitions/mmp_table_name' sync_field_map: $ref: '#/definitions/sync_field_map' sync_order: type: integer responses: '201': description: OK /settings/{sync_setting_id}: patch: security: - accessToken: [] tags: - settings summary: Playbook <-> HubSpot の対応関係設定更新 operationId: updateSyncFieldMapOfHubspot parameters: - name: body in: body schema: type: object properties: hubspot_object_name: $ref: '#/definitions/hubspot_object_name' mmp_table_name: $ref: '#/definitions/mmp_table_name' sync_field_map: $ref: '#/definitions/sync_field_map' write_sync_patterns: type: array items: $ref: '#/definitions/write_sync_pattern' responses: '201': description: OK parameters: - $ref: '#/parameters/sync_setting_id' /sync/read: post: security: - accessToken: [] - apiKey: [] tags: - sync_hubspot summary: Hubspotからデータを読み込み Playbook にデータを反映する operationId: readSyncWithHubspot parameters: - name: body in: body schema: type: object properties: mode: type: string teamId: type: string responses: '201': description: OK /sync/syncable: get: security: - accessToken: [] - apiKey: [] tags: - sync_hubspot summary: 同期状態 operationId: getSyncable parameters: - type: string name: team_id in: query responses: '200': description: OK schema: type: array items: $ref: '#/definitions/syncable' put: security: - apiKey: [] - accessToken: [] tags: - sync_hubspot summary: 同期開始・ストップ operationId: toggleSyncable parameters: - name: body in: body required: true schema: type: object properties: syncable: type: boolean team_id: type: string responses: '200': description: OK schema: type: object properties: data: $ref: '#/definitions/syncable' definitions: createdAt: description: 作成日 type: string format: date-time example: '2017-07-21T17:32:28Z' engagement_sync_setting: type: object properties: id: type: string format: uuid phase_sync_id_map: type: object properties: hubspot_id: type: string id: type: string format: uuid mmp_id: type: string enum: - nurturing - qualification - closing - onboarding - adoption - expansion - recycling - end sync_setting: type: object properties: hubspot_object_name: type: string enum: - dealstages - hs_lead_status id: type: string format: uuid mmp_table_name: type: string enum: - playbook_phases - engagement_statuses progress: type: number maximum: 100 sync_setting: type: object properties: hubspot_object_name: type: string enum: - deals - contacts id: type: string format: uuid mmp_table_name: type: string enum: - engagements hubspotUser: type: object properties: email: type: string first_name: type: string id: type: string last_name: type: string mmp_user_id: type: string name: type: string sync_map_id: type: string hubspot_api_name: type: object properties: api_name: type: string description: type: string hubspot_id: type: string hubspot_object_name: type: string mmp_id: type: string format: uuid mmp_table_name: type: string oauthResult: type: object properties: createdAt: $ref: '#/definitions/createdAt' serviceType: description: 認証サービス type: string enum: - HUBSPOT redirect_url: type: string services: type: string enum: - HUBSPOT sync_field_map: type: string sync_id_map: type: object properties: hubspot_id: $ref: '#/definitions/hubspot_id' id: type: string format: uuid mmp_id: $ref: '#/definitions/mmp_id' sync_setting_id: $ref: '#/definitions/sync_setting_id' sync_id_maps: type: array items: $ref: '#/definitions/sync_id_map' sync_setting: type: object properties: auto_sync: type: boolean hubspot_object_name: $ref: '#/definitions/hubspot_object_name' id: type: string format: uuid mmp_table_name: $ref: '#/definitions/mmp_table_name' sync_field_map: $ref: '#/definitions/sync_field_map' sync_order: type: integer team_id: type: string format: uuid write_sync_patterns: type: array items: $ref: '#/definitions/write_sync_pattern' sync_setting_id: type: string format: uuid sync_settings: type: array items: $ref: '#/definitions/sync_setting' syncable: type: object properties: syncable: type: boolean x-omitempty: false teamId: type: string format: uuid write_sync_pattern: type: string enum: - ARCHIVE - SIMPLE_WRITE parameters: mapping_id: type: string format: uuid name: mapping_id in: path required: true sync_setting_id: type: string format: uuid name: sync_setting_id in: path required: true securityDefinitions: accessToken: type: apiKey name: x-access-token in: header apiKey: type: apiKey name: x-api-key in: header