MyInsights
Getting Started
MyInsights allows customers to create custom content using the Veeva JavaScript library and HTML. This content can be directly delivered to users in the field via CRM, and display contextual and historical information to assist users in their day-to-day activities. Developers can assist in creating this content leveraging real-time information from Veeva CRM. The content can be used to approve orders, review overall sales data, and view account plans.
Your company administrator must first set up MyInsights in their Veeva CRM Org. See Configuring MyInsights for more information.
Creating Content
To start, you need to create an index.html
file. This file contains the code your company administrator uploads into their Veeva CRM Org to generate your MyInsights content.
This is a sample of the code:
<!DOCTYPE HTML>
<html>
<head>
<title>Getting Started with MyInsights</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
</head>
<body>
<!-- Your printToScreen function -->
<h2 id="test"> </h2>
<p> Hello, world! This is my MyInsights content.</p>
</body>
<!-- your javascript file goes here -->
<script language="JavaScript" type="text/javascript" src="q.js"></script>
<script language="JavaScript" type="text/javascript" src="MyInsightsLibrary.js"></script>
<script language="JavaScript" type="text/javascript" src="main.js"></script>
</html>
Querying for Veeva CRM Data
In order to query for CRM data, you need to use the following JavaScript libraries:
- MyInsights.js
Use this library to call information from your Veeva CRM org. The MyInsights library can be found on the JS Libraries tab.
- Q.js
Use this library to work with promises as returns when using the MyInsights library methods. The Q library can be found on Github.
- main.js
This is a required custom file. It controls how content displays. Users can link to it in a controller file. For our example, we've linked to our custom file, named main.js. Alternatively, you can put your main.js file inline.
This is an example of how to reference the JavaScript libraries:
<script language="JavaScript" type="text/javascript" src="q.js"></script>
<script language="JavaScript" type="text/javascript" src="MyInsightsLibrary.js"></script>
<script language="JavaScript" type="text/javascript" src="main.js"></script>
MyInsights Methods
There are several MyInsights methods you can use to create content. See MyInsights methods for more information.
For this example, we are using the queryRecord method.
The queryRecord
method can be used to look for the API fields of an account, for example, Phone, Name, and Fax.
Insert the following snippet in the main.js
file:
function start() {
queryCRMData();
}
function queryCRMData() {
var queryConfig = {
object: "Account",
fields: ["Name", "Phone", "sFax"],
where: "",
sort: [],
limit: "10"
};
ds.queryRecord(queryConfig).then(
function (resp) {
console.log(resp);
printToScreen(resp);
}, function(err) {
console.log(err);
}
);
}
function printToScreen(jsonObj) {
var test = document.getElementById("test");
test.innerHTML = JSON.stringify(jsonObj);
}
document.addEventListener("DOMContentLoaded", function(event) {
start();
});
Displaying the Results
In the index.html
file, you can use the printToScreen
JavaScript function to output the appropriate information stored within the resp
tag. You stored the information into the resp
tag through the queryRecord method in the main.js
file.
The index.html
uses this function to display the results to your MyInsights content.
This is a sample of the following code:
Packaging the MyInsights Content
- Compress the MyInsights content you created. This includes the index.html, main.js, q.js and MyInsights.js files.
- Ensure that you compress the files and not the directory containing your files. Folders should not be inside the zip file.
- Send the compressed .zip file to your company administrator.
General Use
All Where Clauses must use single quotes.
where: 'scale = 'week_vod' AND 'dataType' ='NRx' AND AccountId in {'id1', 'id2', 'id3'}'
Next Steps
You can further enhance reports using a variety of Javascript libraries, including Angular, React, and Vue.
See the Developer Release Notes for the most up-to-date information on MyInsights and other Veeva CRM APIs.