Leave a Voicemail or Voicemail Drop

The goal of this tutorial is to show you how to leave a voicemail using script templates and voicemail drops

Role(s)

  • Team Lead
  • Team Member

How To Leave a Voicemail

  1. Select the Voicemail icon next to End Call
  2. Choose a voicemail from the Voicemail Drop Down and click the up arrow to populate the corresponding script
  3. Proceed to choose an outcome and add any additional notes then click Complete Call

How to Leave a Voicemail Drop

  1. Select the Voicemail icon next to End Call
  2. Click Drop Voicemail & End Call
  3. Proceed to choose an outcome and add any additional notes then click Complete Call

Discovery Questions

The goal of this tutorial is to show you how to navigate and log Discovery Questions

Role(s)

  • Team Lead
  • Team Member

How To Use Discovery Questions

  1. Hover over the Discovery Questions pane on the right
    • You can choose one from the list or type in the search bar
  2. Select a DQ that fits the discussion
  3. Click a response option to generate follow up questions
  4. Enter notes under the response option if applicable
    • After the call has been ended you will see a list of the Discovery Questions used and any notes that were entered under them

Objection Responses

This tutorial will show you how to use Objections Responses while making calls

Role(s)

  • Team Lead
  • Team Member

How To Use Objection Responses

  1. Hover over the Objection Response pane on the right
    • You can choose one from the list or type in the search bar
  2. Select an Objection that fits the discussion
  3. Enter notes on the sticky notepad on the right pane
    • After the call has been ended you will see a list of the Objection Responses used and any notes that were entered

Add Contacts / Accounts in Bulk

The goal of this tutorial is to show you how to add Contacts / Accounts in Upmarket

Role(s)

  • Admin
  • Editor
  • Team Lead

How To Add Contacts / Accounts in Bulk

  1. Select Account or Contact from the Toolbar
  2. Click the + Add Record icon
  3. Click the Add Bulk Records button
  4. Choose the CSV file you want to upload
  5. Click Upload File
    • Optional: Select a Client assigned to the records.
  6. Map the data to the designated fields in Upmarket
    • The left side will display the headers from the CSV you chose to load
    • You can type in or scroll through the list to assign map the field 
  7. Click Complete Mapping
    • A preview window will appear giving you a chance to confirm all the required fields have been mapped correctly
  8. Click Upload

Setup Webhook

The goal of this tutorial is to show admins how they can use Upmarket Webhoooks to send events and data payloads from Upmarket to downstream systems of record like CRMs easily.

Role

  • Admin

How To Configure a New Webhook

  1. Select Settings from the Toolbar 
  2. Click Webhooks under Integrations 
  3. Click Create Webhook
  4. Enter a Webhook Name and click Create
  5. Enter the webhook/listener URL in the Endpoint field. 
    • Make sure that this is a HTTP POST endpoint and it should return HTTP 200 OK. This URL must be secured over HTTPS.
  6. Select the event type from the Event drop down
    • ex: Call Interactions
  7. Check Create/Update/Delete to enable the type of event to be notified on
    • A green window will appear confirming you have successfully created a Webhook
  8. Click on the Verification Key to copy the verification key to clipboard or click Generate to generate a new verification key
    • Use the copied verification key to to verify whether the event notifications that you receive originate from Upmarket, which will be available in request header as x-verification-key
  9. Create a Username and Password to add basic authentication for the provided Webhook Endpoint URL
  10. Click Create to publish the Webhook

Add Authentication for Webhook Endpoint (Optional)

If the downstream system requires every request to be authenticated with a user/password, you can add the authentication here.

  1. Select Settings from the Toolbar 
  2. Click Webhooks under Integrations 
  3. Click on an existing Webhook or create a new Webhook.
  4. Create a Username and Password to add basic authentication for the provided Webhook Endpoint URL
    • Click Save after any changes made to existing an Webhook

Using a Verification Key (Optional)

You can add a verification key to every outbound request from Upmarket to verify that the data received by the downstream is in fact from Upmarket. This step is recommended, but is optional.

  1. Select Settings from the Toolbar 
  2. Click Webhooks under Integrations 
  3. Click on an existing Webhook or create a new Webhook.
  4. Click on the Verification Key to copy the verification key to clipboard or click Generate to generate a new verification key
  5. Click Save after any changes made to existing an Webhook
  6. Use the copied verification key to to verify whether the event notifications that you receive originated from Upmarket. The key will be available in request header as x-verification-key
  7. To verify that the request was sent from upmarket please compare the x-verification-key header value with the one you received in the above step.

    NodeJS Example:
const VERIFICATION_KEY = “e10adc3949ba59ab”; // Copied verification key from upmarket
if(req.headers[“x-verification-key”] === VERIFICATION_KEY) {
// Request verified
}

Handling Webhook Errors

  • Upmarket will retry the specified endpoint on erroneous returns up to 5 times
  • Please make sure that HTTP 200 OK is returned to avoid repetitive API calls

Webhook Event Data Objects

Calls Event Data Object

{
    "Note": {
      "{{id}}": "string"
    },
    "accountCrmId": "string",
    "accountId": "string",
    "accountName": "string",
    "Answered": "boolean",
    "badNumberStatus": "boolean",
    "callBack": "boolean",
    "callBackDate": "date-time-iso-string",
    "callFlow": "string",
    "callFlowId": "string",
    "callFlowLabel": "string",
    "callFrom": "string",
    "callLengths": {
      "activeToCompleteLength": "string",
      "activeToHangUpLength": "string",
      "dialToActiveLength": "string",
      "dialToCompleteLength": "string",
      "hangUptoCompleteLength": "string",
      "pickedUpToHangUpLength": "string"
    },
    "callRecording": "string",
    "callRecordingFrameRate": "integer",  
    "callTimes": {
      "activeTimestamp": "string",
      "activeTimestampEpoch": "string",
      "activeTimestampFormatted": "hh:mm:ss a",
      "completedTimestamp": "date-time-iso-string",
      "completedTimestampEpoch": "date-time-iso-string",
      "completedTimestampFormatted": "hh:mm:ss a",
      "dialTimestamp": "date-time-iso-string",
      "dialTimestampEpoch": "date-time-iso-string",
      "dialTimestampFormatted": "hh:mm:ss a",
      "hangUpTimestamp": "date-time-iso-string",
      "hangUpTimestampEpoch": "date-time-iso-string",
      "hangUpTimestampFormatted": "hh:mm:ss a",
      "pickedUpTimestamp": "date-time-iso-string",
      "pickedUpTimestampEpoch": "date-time-iso-string",
      "pickedUpTimestampFormatted": "hh:mm:ss a",
      "startTimestamp": "date-time-iso-string",
      "startTimestampEpoch": "date-time-iso-string",
      "startTimestampFormatted": "hh:mm:ss a"
    },
    "callTo": "string",
    "callType": "string",
    "channel1": "string",
    "channel1FrameRate": "integer",
    "channel2": "string",
    "channel2FrameRate": "integer",
    "clientId": "boolean",
    "complete": "boolean",
    "contactId": "string",
    "contactName": "string",
    "content_script": "string",
    "createdTime": "timestamp",
    "dateCompleted": "date-time-iso-string",
    "dateCreated": "date-time-iso-string",
    "department": "string",
    "departmentId": "string",
    "departmentLabel": "string",
    "direction": "string",
    "outcome": "string",
    "outcomeLabel": "string",
    "emailFollowUpStatus": "boolean",
    "isCustomVersion": "boolean",
    "meetingStatus": "boolean",
    "noAnswer": "boolean",
    "noteId": "string",
    "notes": "string",
    "notesAdded": "boolean",
    "pickedUp": "boolean",
    "recordingChannels": "string",
    "recordingStarted": "boolean",  
    "result": "string",
    "sentiment": "string",
    "socialProof": [
      "{{id}}"
    ],
    "socialProofLabel": [
      "{{id}}"
    ],
    "team": "string",
    "teamId": "string",
    "teamLabel": "string",
    "meetingPlan": "string",
    "triggerLabel": "string",
    "twoPartyState": "boolean",
    "uId_gridId_createdTime": "id_gridId_timestamp",
    "unsubscribe": "boolean",
    "user": "string",
    "userName": "string",
    "version": "string",
    "versionLabel": "string",
    "voicemail": "boolean",
    "voicemailId": "boolean",
    "voicemailLabel": "boolean"
}

Meeting Event Data Object

{
  "duration": "integer",
  "end_time": "date-time-iso-string",
  "participant": {
    "email": "string",
    "join_time": "date-time-iso-string",
    "user_name": "string"
  },
  "participants": {
    "{{participantId}}": {
      "email": "string",
      "leave_time": "date-time-iso-string",
      "user_name": "string"
    }
  },
  "recordings": {
    "{{recordingId}}": {
      "file_extension": "string",
      "file_size": "integer",
      "file_type": "string",
      "recording_end": "date-time-iso-string",
      "recording_start": "date-time-iso-string",
      "recording_type": "string"
    }
  },
  "start_time": "date-time-iso-string",
  "status": "string",
  "timezone": "string",
  "topic": "string",
  "type": "integer",
  "uid": "string"
}

Email Event Data Object

{
    "accountId": "string",
    "activityId": "string",
    "contactId": "string",
    "createdTime": "timestamp",
    "from": "string",
    "gridId": "string",
    "message": "string",
    "messageId": "string",
    "read": "integer",
    "readDates": [
      "timestamp"
    ],
    "subject": "string",
    "taskId": "string",
    "templateId": "string",
    "threadId": "string",
    "to": "string",
    "uId_gridId_createdTime": "uid-gridId-timestamp",
    "user": "string",
    "userId": "string"
}

LinkedIn Message

{
  "accountId": "string",
  "activityId": "string",
  "contactId": "string",
  "createdTime": "timestamp",
  "gridId": "string",
  "sendDate": "timestamp",
  "taskId": "string",
  "uId_gridId_createdTime": "uid_gridId_timestamp",
  "user": "string"
}

LinkedIn Connect

{
  "accountId": "string",
  "activityId": "string",
  "contactId": "string",
  "createdTime": "timestamp",
  "gridId": "string",
  "sendDate": "timestamp",
  "taskId": "string",
  "uId_gridId_createdTime": "uid_gridId_timestamp",
  "user": "string"
}

Okta Client Login

The goal of this tutorial is to show you how to login to Upmarket with Okta

Role(s)

  • Admin
  • Editor
  • Team Lead
  • Team Member

Pre-requisite

Authorized by administrator to login to Upmarket

How To Login with Okta

  1. Go to app.upmarket.ai
  2. Enter email address
    • User is redirected to the client specific Upmarket login
  3. Provide user credentials in the Okta pop-up 
    • If the user has already logged into Okta on their browser, this login will happen automatically. 
  4. Upon successfully authenticating with Okta, the user will gain access to Upmarket.

Objection Responses

The goal of this tutorial is to show you how to create Objection Responses

Role(s)

  • Admin
  • Editor
  • Team Lead

How To Create Objection Responses

  1. Select Library from the Toolbar
  2. Click the Objection Responses tab
  3. Select the + Add Objection Response icon
  4. Enter an Objection Response Label then click Add
    • The Objection Response Label should clearly state the prospect’s reason for declining to continue the conversation  
  5. Create a script
    • Use the Editor Toolbar to customize text, font, and insert hyperlinks
    • Add Variables to insert personalized content listed in the prospect’s profile
  6. Select Settings from the Toolbar on the right and toggle Set Active to make the Objection Response live
  7. Click the Publish icon to save all changes

Optional:

Assigning Objection Responses to an existing Playbook

  1. Select Settings from the Toolbar on the right
  2. Click Assign and Select which Playbook and Meeting Plan to link the Objection Response
  3. Click the Publish icon to save all changes
    • An Update window will generate confirming the Objection Response has been assigned to a Playbook
    • Click a Playbook tile to easily disconnect the Objection Response from that workflow

Roles and Responsibilities

RoleResponsibilities
AdminSystem Settings
Add and Remove Team Members
Edit Sales Material
Create and Edit Grids
Add Contacts and Accounts
Access Reports
Access Data Extracts
Sales Automation Tools
EditorEdit Sales Material
Create and Edit Grids
Add Contacts and Accounts
Access Reports
Team LeadSales Automation Tools
Edit Sales Material
Create and Edit Grids
Add Contacts and Accounts
Access User Reports
Team MemberSales Automation Tools
Add Contacts and Accounts
Access User Reports

Note

  • Sales Material includes all content creation