Video calling app extension

🚧

This is a Beta feature!

For more info, help, and feedback, please feel free to contact us at  [email protected].


Video calling access point inside Pipedrive


The video calling app extension gives app users the option to create, manage, and join video calls and meetings directly in Pipedrive’s activities.

22682268

Users can add/generate links for video calls by using video calling apps.

Once the user has added a video call to an activity, additional information can be displayed with the video call link e.g. the duration and/or invitation information of the video call.

23862386

The fields Pipedrive fetches from Video Calling endpoints mapped in the manifest.

Afterward, the information connected to the video call will then be displayed together with the activity throughout Pipedrive e.g. in the Contacts list and calendar view, Deals details view.

22762276

When an Activity has been saved with the video calling app extension, a button will appear in the Deals details view to join the call. Once clicked, the button redirects to the video call URL.



Development process


To extend your app's capabilities to the activities modal, we've built the logic of reverse APIs, where Pipedrive will request information from a third party video calling service's API. These requests will be made to the endpoints that are defined in a manifest uploaded to the Marketplace Manager by the app creator.

  • To begin, you'll need access to the Marketplace Manager, where your app is managed.
  • Next, add OAuth 2.0 to and enable the video calls integration scope in Marketplace Manager.
  • Make sure that your app is either connected to Pipedrive or to a third-party service (if the app acts as an intermediary) and has finalized the connection. This means that when a user has installed your app, the app will call the POST /user-provider-link endpoint and sends the user information to Pipedrive.
  • Following this, get acquainted with what should be added to the manifest, create the manifest for your app, and add it to your app’s listing in Marketplace Manager.
  • Finish up your app and submit it for the app approval process.


Connecting the app


Connecting your app to Pipedrive

The application is installed by clicking “install” within the Pipedrive Marketplace. Once the user has agreed to the scopes, the browser gets redirected to the app's registered callback URL (Step 3 of OAuth authorization). At this moment, the app needs to fetch and permanently store the OAuth tokens it receives from Pipedrive (Step 4 of the OAuth authorization). For video calling apps, we require generating a unique identifier string (e.g. a UUID) for each connection/link which will be used by Pipedrive for all API calls executed against the app.

Finalizing the connection

After the unique identifier has been generated and the OAuth tokens stored, the app needs to register itself as a data provider by calling the POST /user-provider-link endpoint. To finalize everything, the app should redirect the user to the redirectUrl that was received as the response for the registration call against the Pipedrive API. On that page, the user will see if both the installation and connecting process succeeded, and can then configure their preferences.

POST /user-provider-link

This endpoint must be called by a video calling provider after a user has installed the video calling app so that the information of the new user is sent.

URL

https://{COMPANYDOMAIN}.pipedrive.com/api/v1/meetings/user-provider-links

A sample request structure made by the video calling app:

{
  user_provider_id: 'string',
  user_id: 001,
  company_id: 007,
  marketplace_client_id: 'string',
}

Name

Type

Required/optional

Description

user_provider_id

string, UUID

Required

A unique user_provider_id that has to be in UUID format.

user_id

number

Required

Pipedrive user ID of the user that installed the integration.

company_id

number

Required

Pipedrive company ID of the user that installed the integration.

marketplace_client_id

string

Required

Pipedrive Marketplace client ID of the installed app.

Sample of response structure:

Status: 200

{
  success: true,
  data: {
    message: 'The user was added successfully'
  }
}


Manifest for Video Calling app extension


A manifest describes, in a special contract format, the endpoints which Pipedrive’s API will make requests to. Based on the responses of those requests, the data received will be displayed inside Pipedrive UI in a pre-defined format. For the video calling app extension, the data received from the endpoints will be displayed in the Activity modal.

The manifest for your app will need the appropriate URLs of a video calling service's API endpoints. Once the manifest for your video calling app is submitted to Marketplace Manager, it will be validated against a pre-defined schema.

Template for Video Calling manifest

The file below defines the JSON schema of the manifest for an app that wants to display its contents inside the Pipedrive Activities modal.

For your app’s manifest, just add your own value for clientID and corresponding URLs of a video calling service’s API requests to endpoints.

{
    "version": "v202049",
    "clientId": "dummyclientid123",
    "endpoints": {
        "postMeeting": "https://example.com/api/:linkId/",
        "deleteMeeting": "https://example.com/api/:linkId/meetings/:meetingId",
        "patchUpdateMeeting": "https://example.com/:linkId/meetings/:meetingId"
    }
}

Manifest URL format

:linkId must be included in all endpoints' URLs. :linkId will be replaced with the unique identifier that the vendor registers the connection with. The unique identifier represents the connection between the app and the user.

:meetingId must be included in deleteMeeting and patchUpdateMeeting endpoint’s URLs. The :meetingId will be replaced with a unique meeting ID provided by the postMeeting endpoint by the provider.

Explanation of the manifest

Object

Explanation

Required/optional

”version”

Defines the version of the manifest. Currently, the only supported version is "v202049".

required

"clientId"

Your app's Client ID. You can get it from the app listing form -> OAuth and Access scopes in Marketplace Manager.

required

"endpoints"

Defines a set of video calling service’s endpoints' URLs to where Pipedrive will make requests to.

required

"postMeeting"

See postMeeting.

required

"deleteMeeting"

See deleteMeeting.

required

"patchUpdateMeeting"

See patchUpdateMeeting.

required



Video calling endpoints


Authentication

All requests from Pipedrive to the app will be supplemented with an authentication header using the same client ID and client secret as the OAuth token exchange in OAuth authorization.
E.g. Authorization: Basic <base64(client_id:client_secret)>



POST "postMeeting" endpoint

required

The postMeeting endpoint is used to create a video call meeting. It is called when the user starts adding a video call in the Activity modal and can be done either in Deal details view or Contacts view.

14741474

The body of the request made to the postMeetings endpoint:

{
  topic: 'string',
  start_time: 'YYYY-MM-DD HH:mm',
  duration: 60
}

Name

Type

Required/Optional

Description

topic

string

Required

The name of the activity.

start_time

string

Required

Start time of the meeting in UTC format 'YYYY-MM-DD HH:mm'.

duration

number

Required

A positive number showing the length of the meeting in minutes.

The expected response from the postMeeting endpoint:

Status: 201

{
  success: true,
  data: {
    meeting_id: 'string',
    join_url: 'string',
    password: 'string',
    invitation: 'string',
  }
}

Name

Type

Required/Optional

Description

meeting_id

string

Required

A unique meeting ID. meeting_id will be used for deleting and updating the information about the video call.

join_url

string

Required

A URL to join the video call.

password

string

Optional

Password for the video call.

invitation

string

Required

Invitation and/or information about the video call meeting.



PATCH "patchUpdateMeeting" endpoint

Required

The patchUpdateMeeting endpoint will be called when the name or time of the Activity is updated.

The body of the request made to the patchUpdateMeeting endpoint:

{
  topic: 'string',
  start_time: 'YYYY-MM-DD HH:mm',
  duration: 60
}

Name

Type

Required/optional

Description

topic

string

Required

The name of the activity.

start_time

string

Required

Start time of the video call in UTC format 'YYYY-MM-DD HH:mm'.

duration

number

Required

A positive number showing the length of the video call in minutes.

The expected response from the patchUpdateMeeting endpoint:

Status: 204

{
  success: true
}


DELETE “deleteMeeting” endpoint

Required

The deleteMeeting endpoint will be called when the Activity is deleted or the meeting link is deleted using the trashcan icon in the Activity modal.

13621362

The body of the request made to the deleteMeeting endpoint will be empty.

The :meetingId parameter in the provided deleteMeeting URL in the manifest file will be replaced with a unique meeting ID.

The expected response from the deleteMeeting endpoint:

Status: 204

{
  success: true
}


Did this page help you?