Heroku Connect Diagnostics
Last updated 20 July 2017
Table of Contents
Heroku Connect interacts with your Salesforce org and your Postgres database in a variety of ways, which means there are a number of factors than can impact the performance, reliability and correctness of sync operations.
We provide a CLI plugin to inspect the current state of your connection and perform basic operations. One of those operations is the ability to run some simple diagnostics to identify common problems that may affect you, using the
$ heroku connect:diagnose --verbose Diagnosing connection... done === Connection: protected-ridge-4963 GREEN: Salesforce API Version GREEN: Number of Mappings GREEN: Database Plan === Account GREEN: Calculated Fields GREEN: Upsert Field GREEN: Binary Fields GREEN: Number of Fields GREEN: Required Fields
Results can be either red, yellow or green. Red results indicate errors that are likely causing problems with the flow of data. Yellow results indicate warnings that may or may not be actual problems, depending on your application. Both red or yellow results will include additional details about the problem, as well as a link to more documentation, where applicable. Green results indicate no known problems, and therefore no additional detail is provided.
Check: Salesforce API Version
Salesforce periodically upgrades the capabilities of its API, but Heroku Connect will not automatically use newer versions as they’re released, in order to ensure consistency in how your data is handled. If you’re using a very old API version, you should consider recreating your connection with a newer API version.
Check: Number of Mappings
Heroku Connect performance degrades as more mappings are added to your connection. This affects reading from and writing to Salesforce, as well as the responsiveness of your dashboard.
Check: Database Plan
Hobby tier Postgres databases are underpowered for typical Heroku Connect usage. If you’re using the paid
danketsu Heroku Connect plan, you should also be using a paid Heroku Postgres plan.
Check: Binary Fields
Binary fields aren’t supported by Heroku Connect, and may not behave as you expect.
Read more: Base64 binary fields
Check: Calculated Fields
Calculated fields aren’t supported by Heroku Connect, and may not behave as you expect.
Check: Number of Fields
When Heroku Connect pulls data from Salesforce, it reads in the entire record at once. When a lot of fields are mapped, this can severely degrade performance.
Check: Required Fields
There are a number of fields required for Heroku Connect to properly insert data from Postgres into Salesforce. If you have failed to map any of the required fields in Heroku Connect, you’ll need to ensure they’re being populated in Salesforce, for example by using a “before insert” trigger in Apex code.
Check: Upsert Field
When writing from Postgres to Salesforce, an upsert field is required to ensure that data can be matched up correctly between the two systems.
Read more: Upsert field
Check: Number of Large Text Area Fields
When Heroku Connect pulls data from Salesforce, it reads in the entire record at once. When this includes multiple large text area fields (which can be Long Text Area fields or Rich Text Area fields), this can severely degrade performance.
Check: Synthetic Fields
Synthetic fields are used to reference objects when writing data to Salesforce, so for a read-only mapping, these are unnecessary and shouldn’t be mapped.
Check: External ID Fields
External ID fields are used to reference objects when writing data to Salesforce, so for a read-only mapping, these are unnecessary and shouldn’t be mapped.
Read more: Relationships beween objects