How to integrate gmail inbox labels with third-party application? - gmail-api

We've a custom CRM application for which we have extensions in IBM Notes & MS Outlook, basically our CRM application can be accessed from Notes & Outlook.
In the same way, we would like to extend the application to support through GMail.
Basically, our customers would like to see their custom objects/data inside various labels/folders under GMail inbox.
As per our understanding, this requires some kind of dynamic pulg-in into the GMail inbox. What is the standard/official way of doing this, please suggest.
Thank you,
Shibu.

You can add gadgets inside emails within Gmail. Basically the user opens an email and can see a pane below the email body. Full details here
https://developers.google.com/gmail/contextual_gadgets
Your concept though of 'non-email' data being available within Gmail under labels is not something I would have thought possible. Basically labels are applied to emails to allow for organisation of emails only. I would expect you would need to generate emails to achieve this.
The only way I can think of you achieving such a thing would be to use a Chrome Extension and modify the DOM of Gmail to provide 'custom' labels and objects in the Gmail DOM.
I would suggest you look at using the contextual gadget and allow for search etc from the gadget to allow the user to access the CRM data you speak of.
We have used this technique with our product here - there are some videos which will give you the general idea
http://i3cloud.com/SalesCloudGmail.html

Related

Enhanced Domains - What to Check in your Org?

As you know Salesforce is enforcing Enhanced Domains. I found from Salesforce help that:
Custom components in your org must be evaluated in order to check
whether they use domain name/static URLs
Some embedded content stored in Salesforce might no longer appear
Third-party applications can lose access to your data
Single sign-on integrations can fail
However, I'm struggling with finding out which particular Salesforce elements/configurations should be checked in order to detect potential gaps? Do you know which areas exactly can be affected and shall be evaluated (like Apex Codes, Email Templates and so on)? Is there any guide on that?
Your biggest concern should be inbound integrations. Things that log in over REST/SOAP API, get response with session id back, ignore the "url to use for all subsequent requests" and just use hardcoded url, whether it's prod or sandbox.
Look at this guy, he's victim of either enhanced domain or "disable api versions < 30" thing: The requested resource no longer exists with rest PHP. Look at these guys, they had hardcoded url: how to solve python code error (TooManyRedirects: Exceeded 30 redirects), Salesforce API via postman error INVALID_SESSION_ID.
As for stuff inside Salesforce itself - best would be to download whole project with sfdx and run a text search for your domain name (and site/community name if you have these). Email templates that use merge fields for forgot password etc should be fine, merge fields with record link should be fine... But if you manually craft email body in apex - might be a problem. A lot depends how creative the developer was. If you find getsalesforcebaseurl().toexternalform() it should still work. If it's hardcoded / read from custom setting / custom label / custom metadata it might be more fun.
If you have external apps that display pieces of salesforce (embedded live chat? some iframe with FAQ? CMS Connect) - the domain change might mean they need to be updated, both in terms of updating url and changing security rules (CSP for example)

Looking for suggestions on web hosting solution (Wix, Squarespace, WordPress, for following

I want to host a clean, branded site that allows users to submit data which I will post process on some regular cadence and send custom emails based on data processing results. I can write code and have extensive experience with AWS, but am looking for the fastest solution.
Any experienced web developers have suggestions of which hosting solution to use? Wix, Squarespace, WordPress. I would prefer Squarespace but am not finding clear documentation stating I can create a form which writes to a database (I.e. DynamoDB, Redshift).
Any suggestions would be great! Thanks!
Having a good deal of experience with Squarespace, I will address the question "Is it possible to connect a Squarespace form to a third-party database and, if so, by what means?". While I won't address Wix or Wordpress, hopefully it will provide some objective answers and provide some help to your larger context/question.
Squarespace doesn't support any server-side code; it only supports supports the addition of HTML, CSS and Javascript within Code Injection, Code Blocks, and Developer Mode.
Therefore, your options are:
Send the data client-side with JavaScript. Write your own HTML form and insert it via code block, markdown block, of developer mode. Then write the corresponding JavaScript to send the data, on submit, to your external database. Alternatively, use a Squarespace form block, prevent the default submission from executing and use your own methods instead.
Connect the Squarespace form block to a Google Sheet and the sheet to the external DB via Apps Script. Once connected, use Apps Script (set to trigger when a row is added to the sheet) to obtain the submission from the sheet and send it to your external database (similar to this or this, but you'll be going "the other way", sending data to the external DB from Apps Script).
Use Zapier (or similar service) to bridge the gap, either using Squarespace's built-in integration or setting up Zapier on your own and setting the Zapier email address as the email recipient. You can use Zapier to send form submissions to a new item in DynamoDB, for example. It appears that, at a minimum, you'd have to pay for Zapier as that is a "Premium Integration". For Squarespace, if you were to use their built-in Zapier integration, you'll have to pay for a higher-cost plan (which could be avoided by using the email storage option instead, as mentioned previously).
I think you should choose WordPress, they have a huge documentation, a big community, you can get a ton of support from Wordpress's users when you run into a problem.

Create a multiple messenger chat from the API

I want to create a "social" service of meetings between groups of strangers.
Since people do not know each other before meeting, I wish they could communicate before and especially before the appointment in case someone wants to prevent a delay or can not find others, or is first come on the scene for example...
This service would be accessible on the Web (no mobile application).
I told myself that integrating an available solution "offsite" would be a good idea because it allows to be used also on the phone. I thought of Messenger that is convenient because everyone or almost has facebook.
My idea is that people who sign up for a meeting are automatically added to a messenger group (or at least if the API does not allow it to create a group chat link they can join of their own chief...)
I have researched the API messenger and I have not found for the moment a way to create a group with Facebook IDs eg targeted.
Do you know if this is possible or something that has come closer in case it is not ?
for example a bot that creates a chat link with the users affected by the event ...
The Messenger API is for communication between Pages and (single) Users only. There is no API for User to User chats. You would have to create your own solution - Node.js with Socket.IO is perfect for that, for example.

Gmail API - missing snoozed emails (common use case requirement)

I'm sure that we, like many other partners using the Gmail API to support common use cases around Gmail. With the new Snoozed (and follow-up) email features we are unable to see these message in the inbox (i.e. at least with the correct date).
Is this something that is planned for the Gmail API?
I would really like to lobby for this functionality as when you pull the Gmail Inbox, it is missing this info.

Google app add attachment option to email

I want to create a google app that will let you add a file from a cloud service as an attachment to an email. From reading the google documentations it seems like you can't do anything while the user is creating an email, but the attachments.me app is able to do it. When composing an email, their app will pop up a button next to the regular attachment app letting you select an attachment from the cloud. I am new to working with google apps and I do not understand how attachments.me is able to do this. If anyone has an idea as to how this is possible please let me know, thanks.
To add features to the GMail UI you'd probably have to implement this as a Chrome extension (and/or Firefox or IE extension to support those browsers). In fact, this is apparently how attachments.me does it.
What the extension does is load when you go to gmail.com, identify a place in the UI where it wants to add its button(s), and inject them using JavaScript. You may then want to use JavaScript again to do something like add a link to the text of the email before it gets sent to the media you want to attach from the cloud, or intercept the "Send" button to tell your server to send the message with the cloud attachment included (assuming the user has authorized your server to send as them -- this can have serious security implications)
Beware, modifying complex web app UIs like GMail's using a Chrome extension can be very difficult; GMail may make changes that break your UI or functionality, and they may do it whenever they want, or only to a subset of users, so you'll have to constantly keep up with these changes to fix bugs. All in all I don't recommend it as a way of adding attachments to emails.

Resources