Sending licence key to intercom after consent is given. For CE users, sending license key as empty string. The consent popup is not required for cloud hosting users. #### Type of change - Bug fix (non-breaking change which fixes an issue) > > #### Fixes https://github.com/appsmithorg/cloud-services/issues/810 > > ## Testing > #### How Has This Been Tested? - [ ] Manual > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import type { User } from "constants/userConstants";
|
|
import { getAppsmithConfigs } from "@appsmith/configs";
|
|
import { sha256 } from "js-sha256";
|
|
import { getLicenseKey } from "@appsmith/utils/licenseHelpers";
|
|
|
|
const { appVersion, cloudHosting, intercomAppID } = getAppsmithConfigs();
|
|
|
|
export default function bootIntercom(user?: User) {
|
|
if (intercomAppID && window.Intercom) {
|
|
let { email, username } = user || {};
|
|
let name;
|
|
if (!cloudHosting) {
|
|
username = sha256(username || "");
|
|
// keep email undefined so that users are prompted to enter it when they reach out on intercom
|
|
email = undefined;
|
|
} else {
|
|
name = user?.name;
|
|
}
|
|
|
|
window.Intercom("boot", {
|
|
app_id: intercomAppID,
|
|
user_id: username,
|
|
email,
|
|
// keep name undefined instead of an empty string so that intercom auto assigns a name
|
|
name,
|
|
});
|
|
}
|
|
}
|
|
export const updateIntercomProperties = (instanceId: string, user?: User) => {
|
|
if (intercomAppID && window.Intercom) {
|
|
const { email } = user || {};
|
|
|
|
window.Intercom("update", {
|
|
email,
|
|
"Appsmith version": `Appsmith ${
|
|
!cloudHosting ? appVersion.edition : ""
|
|
} ${appVersion.id}`,
|
|
instanceId,
|
|
"License ID": getLicenseKey(),
|
|
});
|
|
}
|
|
};
|