This post is part of a series on how to leverage your existing Salesforce data in external tools:

Salesforce API limits can prevent you from using Salesforce data at scale in your other public web projects. As a Salesforce customer, you only get 1,000 api calls per user per 24h period when you use the Salesforce APIs directly.

This article will show you how to get around that by using the open source Hasura GraphQL engine in front of Salesforce to maximize developer happiness and data throughput.

Here’s how epic you’ll look after you learn this! … Has Photo Credit: Jason Briscoe


We will create a GraphQL API for Salesforce using Heroku and the…

Your developers want to use jamstacks on Netlify to save time and money, and the rest of your business users are working in Salesforce. This article covers how to build your own CMS for dynamic sites using records in salesforce.

Data Model

Your data model will be up to your business requirements, but this pattern is one we’ve re-used a few times:

If you don’t need multiple sites or complex rules on content types (or just want to start simple) then you can start with a single object named “Content” (Content__c) with a single field named “Body” (rich text).

Exposing the data to your static site generator

This is the…

This article is for running a site to get data in or out of your salesforce database.

You might already be using a site with a custom domain, but browsers are now preferring SSL (https) and users might even be warned if they visit your site if it doesn’t use SSL.

Create an SSL Certificate:

Download the Certificate Signing Request (CSR)

This blog was co-written by Jagmohan Singh and James Sullivan.

There is no easy option to set up a quick action to create a new Quote from Opportunity object.

In this post, we are going to cover how to set up a lightning action on the Opportunity object to create a new Quote and dynamically pre-populate fields. This will demonstrate how to use a Record Edit Form component to create new records based on an ID provided. In this example, we’ll pass in the Opportunity ID to create a quote with the same name.

The problem: You have cases in a Queue and want to enable that Queue for OmniChannel, but none of the existing cases in that queue get routed through OmniChannel! When you turn on OmniChannel, it only routes cases created after you’ve linked the Queue to a Routing Configuration.

How do you route those existing cases?

Salesforce Object: PendingServiceRouting

OmniChannel’s object that represents the state of the queued item is PendingServiceRouting

I wish I could just create entries into this table by data loader or anonymous apex, but I hit generic apex issues and could not make it work.

PendingServiceRouting[] routes = new PendingServiceRouting[]{};
for (Case c : [
select Id, CreatedDate…

James Sullivan

Words from the Development Team at CloudAnswers

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store