Skip to content

Commit

Permalink
Revised content for feedback forms
Browse files Browse the repository at this point in the history
  • Loading branch information
byrnereese committed Aug 20, 2024
1 parent 54f7127 commit ffc9ba5
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 38 deletions.
7 changes: 0 additions & 7 deletions docs/developers/feedback-page.md

This file was deleted.

57 changes: 35 additions & 22 deletions docs/developers/manifest-pages.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,32 +55,45 @@ Set up associated deals the same as call log

### Feedback page

A feedback page allows you to facilitate the collection of feedback from users. When defined a feedback link will appear in the CRM extension for users to click. When clicked, a form will be displayed to the user prompting them for feedback. The structure and input elements of the form are configurable.

To use feedback page, please create `feedback` object under `page`. `feedback` has below properties:

| Name | Type | Description |
|--------------------|---------|-------------|
| `url` | string | An url that pointing to your feedback page. Query parameters can be setup. Please refer to [below](#page-elements-and-query-parameters) |
| `elements` | array | Page elements. Please refer to [below](#page-elements-and-query-parameters) |
| Name | Type | Description |
|------------|---------|-------------|
| `url` | string | A URL that the feedback form will post data to. Query parameters can be setup. Please refer to [below](#page-elements-and-query-parameters) |
| `elements` | array | Page and input elements that will comprise the feedback form. Please refer to [below](#page-elements-and-query-parameters) |

#### Page elements and query parameters

Page elements are defined as similar to log page fields above:

| Name | Type | Description |
|--------------------|---------|-------------|
| `const` | string | A unique key identifying the field. |
| `title` | string | The display name of the field. |
| `type` | string | The data type associated with the field. `string`, `inputField` and `selection` |
| `bold` | boolean | (Only applicable for `string`) |
| `selections`| array | Each element has only `const` and `title`|
| `required`| boolean | Required field flag.|
| `placeholder`|string| (Only application for `inputField`)|

`url` can be best explained in an example. If I want to eventually open a Google Form, I'd have my `url` as "https://docs.google.com/forms/d/e/1FAIpQLSd3vF5MVJ5RAo1Uldy0EwsibGR8ZVucPW4E3JUnyAkHz2_Zpw/viewform?usp=pp_url&entry.912199227={score}&entry.912199228={crmName}". In page elements, if I have an element with `const` as "score", it'll then replace {score} in the url to construct a new url with user input data. And some parameters are native, like {crmName} which will be your crm name. Here are details:

|Name|Is native|Description|
|----|-----|----|
|{any element}|false|Any custom field that you define in your feedback page|
|`crmName`|true|Your crm platform name|
|`userName`|true|RingCentral user name|
|`userEmail`|true|RingCentral user email|
| Name | Type | Description |
|---------|--------|-------------------------------------|
| `const` | string | A unique key identifying the field. |
| `title` | string | The display name of the field. |
| `type` | string | The input type associated with the field. `string`, `inputField` and `selection` |
| `bold` | boolean | (Only applicable for `string`) |
| `selections` | array | Each element has only `const` and `title`|
| `required` | boolean | If true, the form cannot be submitted until a value has been entered. |
| `placeholder` | string | A placeholder value to be replaced by the user. Only applicable for `inputField`. |

#### Submitting feedback forms

When a user submits the feedback form, the feedback will be submitted to the designated `url`. The URL supports a number of tokens so that you can encode user submitted form data into the URL being posted to. These tokens are as follows:

| Name | Is native | Description |
|-------------|-----------|------------------------|
| `crmName` | true | Your crm platform name |
| `userName` | true | RingCentral user name |
| `userEmail` | true | RingCentral user email |
| *Element const value* | false | Any custom field that you define in your feedback page |

!!! tip "Posting to a Google Form"
Posting feedback to a Google Form such that the user's input is pre-filled on the resulting Google Form page requires you to encode the Google Form URL with custom values. This is achieved through the use of tokens. For example, consider the need to construct the following URL:

https://docs.google.com/forms/d/e/:FORM_ID/viewform?
usp=pp_url&entry.912199227={score}&entry.912199228={crmName}

Prior to the form being posted to the URL, the `{score}` and `{crmName}` tokens will be replaced with their corresponding values, using user-provided data when present.

22 changes: 13 additions & 9 deletions docs/users/logging.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,25 +43,29 @@ The Unified CRM extension can be configured to log calls automatically so that y
* **Auto log call/SMS**. This is to turn on auto log feature which will always attemp to log your calls/messages unless any conflict found. A conflict can come in different forms, eg. multiple matched contact for one number.
* **Auto log call/SMS - only pop up log page**. This is a sub-setting under auto log. With it ON, instead of log it in the background, the extension will only open up the log form and you will need to manually log it. This is especially helpful when your work involves taking notes in the log or selecting specific associations with the event.

### Conflicts
!!! warning "Auto-logging calls require you to be logged in"
Users should be aware that calls received while the browser is closed, or while the extension is not actively running will *not* be logged automatically. They will however be logged the next time the CRM extension is active.

In most cases, we are facing 3 types of conflicts:
1. `No contact match`: An unknown number that's not matched with any existing contact in your CRM
2. `Multiple matched contacts`: A known number thats matched with more than one contact in your CRM
3. `Multiple associations`: In some CRMs, a call/SMS log can be associated with other entities. A quick example would be, a contact has 2 orders.
### How to resolve logging conflicts

If you have "Auto log call" enabled under Settings, then whenever a call is received or placed that cannot be logged automatically, then a new tab will appear called "Unresolve." Within this tab, calls with various logging conflicts will queue up for the user to resolve.

![Unresolved conflicts](../img/auto-log-unresolved-conflicts.png)

In most cases, there are three reasons a call cannot be logged.

1. **No contact found**: A contact could not be found in the CRM associated with the associated phone number. When this happens, a new contact must be created, or the actual contact record in the CRM should be updated with the phone number in question.

2. **Multiple contacts found**: More than one contact was found with the associated phone number. To log this call, a contact record needs to be selected for the note/activity to be associated.

3. **Multiple associations found**: In some CRMs, a call/SMS log can be associated with other entities. A quick example would be, a contact has two orders.

**How do you know if a contact record has been found?**

You will know if a contact record has been found if you see a contact's name in the call history tab of the Unified CRM extension. If you see a phone number only, chances are a contact record could not be found.

*Pro tip: you can still log the call as long as you fill in a contact name in the call log form for the extension to create a placeholder contact and then log the call against it*

**Limitations**

Users should be aware, that calls received while the browser is closed, or while the extension is not actively running will NOT be logged.

## Logging past calls

The Unified CRM extension has the ability to automatically log calls in your connected CRM (see "Automatically logging calls" above). However, for calls to be logged automatically, the extension must be actively running. So if you receive a call overnight for example, the next morning when you login, you can navigate to the Call History tab, see the calls you missed, and click the call log icon to record notes or call disposition for that particular call.
Expand Down

0 comments on commit ffc9ba5

Please sign in to comment.