Is it possible to populate IBM Watson Assistant entites by reading from another system (e.g. Salesforce)? - salesforce

I'd like to bring through entities from another system (e.g. Salesforce) into the Watson chatbot in order to allow the user to interact with them. e.g. Rather than explicitly defining "Customer" and then building a list of customers in Watson I'd like it to integrate and bring through all active Customer records from salesforce, each as their own entity. Is it possible to dynamically update Watson's entity list based on a table in another system?

There is no built-in functionality for that, but it can be done. Watson Assistant / Watson Conversation has an API and SDK support for adding entities. I have used that technique as part of the EgoBot project.
However, I would recommend to integrate Salesforce as a regular backend. Here is a tutorial for how to have a database as backend. Another option, depending on what you want to accomplish, is to look at the Salesforce to Watson integration. There is also a Salesforce / Watson SDK for that.

Related

Modify IBM Watson Chatbot Dictionary in php

I have just started learning IBM Watson Chatbot.
The problem is that I want to change the Chatbot dictionary using php.
In other words, I want to create a php function that sends question and answers to the IBM Watson API so that it can add them to the dictionary.
But I can't find appropriate document and also the correct API endpoints.
Please help me with doing this.
If by add to the dictionary you mean perform crud on entities then you will need the V1 Watson Assistant API - https://cloud.ibm.com/apidocs/assistant#update-entity
In your case you will probably be looking at the update entity method, and update values.

Salesforce integration - categorisation based on pricing plans

I am stuck as a developer trying to explore Salesforce for integrating with my CRM which is used by our clients as SaaS.
Background of what i want to achieve in the integration
The idea is that my CRM software allows many features that Salesforce does not and vice-versa. Due to this a typical client who is using my CRM (Saas) ends up using both the softwares. This ends into duplication of efforts where for eg: a customer created in my CRM has to be copied over to Salesforce manually from Salesforce UI.
The integration that i wish to provide will work like a 2 way integration where a customer created from my CRM gets created as Accounts in Salesforce and vice-versa. Same way sync of edits and deletes across the 2 system should work.
Problem that i am having
When i started exploring Salesforce integration, i found that Salesforce allows integration to be done in below ways
Apex trigger based system - I was able to achieve 2 way syncing with Salesforce and my CRM using Apex approach. But the problem is it requires me to access their web api's to send data from my CRM to Salesforce. This feature is only supported in higher pricing plans of Salesforce (Enterprise, Unlimited, Professional - you have to pay extra if you are using professional)
App based approach (eg: Slack): I am looking more towards this approach. As Slack integration works for almost all pricing plans and is supported well. What i could not conclude clearly is - how can i create an App for my CRM and get it listed on Salesforce? How does Salesforce allow an App based access from Slack to submit data into Salesforce system for lower pricing plans. Their documentation says that Api access is only available for higher pricing plans. Then how is this achieved? For eg: you can install Salesforce app into Slack and there after you can send messages to chatter service under individual accounts of Salesforce from Slack.
I am really not sure if i have given enough insight into the problem i am having. But i tried explaining as much as possible. In short i want to integrate 2 way with Salesforce and i am looking for possible solution that is supported at lower pricing plans as well. What type of integration should i go forward with?
Look into using an ETL provider that already is a salesforce technology partner (Boomi, Jitterbit, etc...).
These are already on appexchange.com, and as certified appexchange apps, can access data in salesforce Professional Edition (which does not allow open API access).

database.com force.com and salesforce.com

I am currently trying to learn salesforce.
Following is my understanding(correct me if i am wrong)
Database.com
Database as a service.
Uses oracle under the hood.
Provides REST API service to interact with database.
Force.com
Platform as a service.
Provides metadata layer(Apex language,tool to edit/debug code,visualforce page etc.)
Provides default metadata for database.com field types.
Uses Database.com under the hood(for storing data and metadata).
Salesforce.com
Software as a service.
Uses Force.com under the hood.
Provides few data model (i.e.schema) eg:-sales,marketing.
Provides a framework(mainly UI) to create/configure various parameters of metadata and data model.
Question
I believe database.com, force.com and salesforce.com are 3 different services.
But on searching I am always reaching to salesforce CRM.Is it possible to use Database.com or Force.com alone i.e. without salesforce CRM?
Thank you!
I believe the database is currently going by the name of Force.com Database, while database.com is the name of one of the salesforce editions (products). I haven't heard much about database.com recently, and most of the links to database.com seem to be redirected, so it seems like they are trying to phase it out.
As for the underlying database technologies that support salesforce, Oracle seems to be the main one, link, link. But when working with the force.com database, it's very different from Oracle, and the SOQL language is very different from SQL (e.g. no JOIN).
Your description of force.com and salesforce.com seems basically correct.
As for using them separately, you can essentially build a web app to do whatever you want on the force.com platform. That being said, the ecosystem mostly revolves around the CRM products (sales/service cloud, marketing cloud). Besides CRM customers developing/customizing the systems for their own use, the platform also draws ISVs who publish their apps on the appexchange to sell to salesforce.com CRM customers.

IBM Watson Dialog Concept

I am creating Watson Dialog Service. My question is : do we always need the formatted XML file for the input or is there a way by which we can feed data in to Watson from other sources like from several web URLs etc? Because when we will have a huge amount of data how XML will be able to deal and creating of XML files will also be difficult as data grows. Kindly help to understand the basic concept.
It is possible to configure an existing XML Dialog by setting up profile variables.
The Set Profile Variables API call on the Dialog Service is key to priming up a dialog: https://watson-api-explorer.mybluemix.net/apis/dialog-v1#/
Sadly, this is also the most poorly documented call in their docs.
Have a look at the What's in Theaters example from IBM. This is by far the most comprehensive application that shows how their Dialog Service can interact with other Watson enabled services like Natural Language Classifier and also third party apps.
Source Code: https://github.com/watson-developer-cloud/movieapp-dialog
Documnentation: http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/ega_docs/dialog_ega.shtml
Based on this you have to decide if the Dialog service is suitable for your purpose or can play a small role in your larger application when combined with other services.
Conversational Agent Application Starter Kit: https://github.com/watson-developer-cloud/conversational-agent-application-starter-kit

How to distribute your own data on Salesforce?

I will work on a new project related to salesforce. Actually what we want to do is to have a salesforce API that contains our database and this API will accept connections from our clients. Once we establish the connection the user will have the access to our database too. Since I dont know anything about salesforce right now, I just wanted to ask you if you have some ideas on how to do that ? Is there any existing API doing that ? or We need to implement our new API for salesforce ?
Salesforce provides several APIs out of the box that can be used to access the data stored in your Organization.
Have a look at the REST API, Enterprise API and the Partner API. See Which API Should I Use?.
If none of those suit your needs you can use Apex to create your own REST or SOAP based services.

Resources