Plugins
Partners now can build plugins that utilizes EPC. Partners new to EPC, see What do I need to get started?
Partners can use their EPC API keys, to register a plugin as EPC product. Sample create plugin product request payload below:
{
"partnerId": "12345678",
"name": "PartnerName-PluginName",
"listingName": "Marketing Plugin Name",
"environment": "prod",
"status": "approved",
"integrationType": "PLUGIN",
"interfaceUrl": "https://partnerpluginurl.com/plugin.html",
"tags": {
"workflows": [
"interactive"
],
"categories": [
"PLUGIN"
],
"applications": [
"urn:elli:application:loconnect"
]
},
"entitlements": {
"access": {
"allow": [
"urn:elli:encompass:BExxxxxxxx",
"urn:elli:encompass:BEyyyyyyyy"
],
"deny": [
""
]
}
}
}
This will result in a plugin being created as EPC product. Sample create plugin product request payload below:
{
"id": "c089bb5b-b715-437c-9e3b-38e813524e52",
"partnerId": "12345678",
"name": "PartnerName-PluginName",
"listingName": "Marketing Plugin Name",
"environment": "prod",
"status": "approved",
"integrationType": "PLUGIN",
"interfaceUrl": "https://partnerpluginurl.com/awesome_plugin.html",
"tags": {
"workflows": [
"interactive"
],
"categories": [
"PLUGIN"
],
"applications": [
"urn:elli:application:loconnect"
]
},
"entitlements": {
"access": {
"allow": [
"urn:elli:encompass:BExxxxxxxx",
"urn:elli:encompass:BEyyyyyyyy"
],
"deny": [
""
]
}
},
"created": "2026-02-19T00:22:12Z",
"createdBy": "urn:elli:service:epc-partner-service",
"oAuthClientId": "41sts5i9"
}
Notice the following:
▪ Plugin is now hosted by the partner. This includes landing html page and any supporing files (javaScript files, ...).
interfaceUrl points points to the plugin landing page that going to be used by ICE Mortgage Technology applications to load the plugin at runtime.
▪ Although the html could have visual elements in the html, Encompass platform will not render them. The plugin framework is meant to be used for data manipulation and not for visual elements.
▪ Plugin's JavaScript files can access and use any scripting object from the ICE Secure Scripting Framework.
▪ Sample html page below:
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta id="google" content="notranslate" />
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta id="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" />
<meta id="msapplication-TileColor" content="#2080CD" />
<meta id="theme-color" content="#2080CD" />
<title></title>
<script src="https://cdn.mortgagetech.ice.com/elliemae/core/ssf/1.11.1/elli.ssf.guest-with-polyfill.js"></script>
<script src="./awesome_plugin.js"></script>
</head>
<body>
<div>
Hello World - Awesome Partner Plugin </br>
</div>
</body>
</html>
▪ Sample JavaScript file below:
async function navigateToDocuments(proxy, data) {
const appObj = await elli.script.getObject('application');
const navPayload = {
target: "SERVICES",
type: "OTHER"
};
const loanObj = await elli.script.getObject('loan');
const fieldVal = await loanObj.getField('4000');
console.log('Inside loan open')
if (fieldVal === 'NavigateToDocuments') {
setTimeout(() => {
appObj.navigate(navPayload);
}, 1000);
}
}
if (elli && elli.script) {
elli.script.connect();
elli.script.subscribe('loan', 'change', navigateToDocuments);
}
Updated 6 days ago
