> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appreply.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce integration

> Connect Salesforce Service Cloud to AppReply by email. Reviews become Cases through Email-to-Case, and your agents answer the review by replying to the Case.

Connect Salesforce Service Cloud to AppReply so that reviews become Cases. AppReply sends each review as one email to your Salesforce Email-to-Case address, and Salesforce turns it into a Case. Your agent answers the review by replying to that email from the Case, and AppReply posts the reply to the store.

The connection uses Salesforce's own Email-to-Case. There is no sign-in with Salesforce, no package to install, no API user and no field mapping. All AppReply needs is one email address. Rules only check reviews that arrived in AppReply in the last 2 hours; see [Helpdesk integrations](https://docs.appreply.co/integrations/helpdesk/overview.md).

This page is for teams that handle support in Salesforce and want an agent to be able to answer a review without opening AppReply.

## Before you start

You need a Salesforce admin to set up Email-to-Case, and someone to open one email in Salesforce.

* **Email-to-Case turned on**, with On-Demand Email-to-Case, and a routing address. A routing address is the address Salesforce uses to turn incoming email into Cases. Add it and verify it in Salesforce first.
* **The address to paste into AppReply.** Use the routing address if it delivers to Salesforce. Otherwise use the long **Email Services Address** that Salesforce shows for the routing address.
* **Outgoing email from Salesforce that passes SPF or DKIM.** AppReply does not post a reply that fails both checks.
* **No auto-response rule for these Cases**, or an exception for them. An automatic reply is never posted. AppReply ignores the replies Salesforce marks as automatic. It also treats any reply that arrives within two minutes of the review email as automatic, and the first of those for a Case gets a [note](#notes-you-may-get-back).

Email-to-Case works on every Salesforce edition that includes it. No API access is needed.

> [!NOTE]
>
> Any AppReply plan can connect Salesforce. [Ticket rules](https://docs.appreply.co/auto-replies/escalation.md) need the Pro plan, as for the other helpdesks. **Create ticket** on a single review does not.

## Connect Salesforce

**1. Open the connect window**

In AppReply, go to **Integrations** (in the Apps section of the sidebar) and click **Connect** in the Helpdesk connections section (or **Connect your first helpdesk**), then choose **Salesforce**.

![The Connect helpdesk window: Choose a helpdesk, with Zendesk, Intercom and Salesforce as the options](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33g-integrations--choose-helpdesk-salesforce.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=76567c96aa8f3d9db401a814736bce42)

**2. Paste the Email-to-Case address and send the confirmation**

Paste the address from Salesforce into the **Email-to-Case address** field and click **Send confirmation**. This is the only field.

![The Connect Salesforce window: three short steps for Email-to-Case in Salesforce, the Email-to-Case address field with cases@acme.com typed in, a note about auto-response rules and email signatures, and the Send confirmation button](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33h-integrations--connect-salesforce.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=879c4bbd05b37a46856cb1701cdc2e15)

AppReply saves the address and shows **Check Salesforce**. Click **Done**. Salesforce is now listed under Helpdesk connections with the status **Waiting for confirmation**.

**3. Accept in Salesforce**

AppReply sends one confirmation email to that address. It arrives in Salesforce as a Case with the subject **Confirm AppReply reviews for this address**. Someone with access to Salesforce opens the link in it. A page opens that names your AppReply workspace and the address. Press **Accept**.

Opening the link is not enough. The connection is confirmed only when you press **Accept**. You don't need to be signed in to AppReply to do it. The link works for 7 days. Nothing is emailed to your address before it is confirmed.

**4. Check the connection**

Back in AppReply, the Salesforce connection shows an **Active** status. The card shows the address that reviews are sent to.

![Helpdesk connections on the Integrations page, with Salesforce connected and Active, its Email-to-Case address, a Verify button and a delete icon](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33i-integrations--salesforce-connected.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=a2459ddd2931e05ee3574ddf99ab7cd6)

While the status is **Waiting for confirmation**, the card shows **Send again** in place of **Verify**. Click it to email the confirmation link again. You can send up to 3 confirmation emails an hour and 10 a day for each workspace. A workspace has one Salesforce connection.

To use a different address, click **Connect**, choose **Salesforce** and paste the new address. The connection goes back to **Waiting for confirmation**, and the link in any earlier email stops working.

Next, [set up ticket rules](#send-reviews-to-salesforce) to choose which reviews become Cases, or use **Create ticket** on a single review.

## Send reviews to Salesforce

There are two ways to send a review. Both send the same email.

### Ticket rules

A ticket rule sends every review that matches its conditions. Go to **Ticket rules** on the Integrations page, click **Create Rule** and choose **Salesforce** as the **Helpdesk connection**. You can only pick Salesforce once it is no longer waiting for confirmation.

![The Create ticket rule window with Salesforce chosen as the helpdesk connection: rule name, application, rating threshold, additional conditions, ticket subject template and cooldown. There are no priority or tags fields.](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33j-integrations--salesforce-ticket-rule.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=540e7b52dd93877113e3804fa7e060a5)

The rule form works as described in [Helpdesk ticket rules](https://docs.appreply.co/auto-replies/escalation.md), with these differences for Salesforce:

* A Salesforce rule has no priority and no tags, so those fields are not shown.
* The **Ticket subject template** becomes the subject of the email, so it is also the name of the Case. The form fills in a template built from the rating and the app name, with the placeholders `{rating}` and `{app_name}`. If you clear the template, AppReply uses that same default.
* Rules send reviews of your own apps only. Reviews of competitor apps you track are skipped, even when the rule applies to **All apps**.

### Create a ticket by hand

On a review card for one of your own apps, click **Create ticket**. In the **Create Helpdesk Ticket** window, check the **Subject** and, if you have more than one helpdesk connected, pick **Salesforce** under **Helpdesk**. Then click **Create ticket**.

![The Create Helpdesk Ticket window with Salesforce chosen: a Subject field, the Helpdesk selector, a description preview with author, rating and review text, and a Create ticket button. There are no priority or tags fields.](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33k-reviews--create-ticket-salesforce.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=f39dcf2149e060a61cd5e7ccd950c5f0)

The subject you see in the window is the subject of the Case. Priority and tags are not offered for Salesforce.

A review is sent to Salesforce once. After that, its card shows the ticket's status instead of the **Create ticket** button. When a reply is posted from Salesforce, AppReply marks the ticket **Resolved**.

## What the review email contains

Each review is one plain email. Salesforce shows it as the first email of the Case.

* **Sender name:** the reviewer's name and the store, for example `Jon C. Google Play review`.
* **Subject:** the rule's subject template, or the subject from the **Create Helpdesk Ticket** window.
* **Body:** the rating, app and store, the review text and its translation if there is one, the author, the date, the app version, the country and language, and an **Open in AppReply** link to the review.
* **Instructions for the agent:** one paragraph that says how to reply, the longest reply the store takes, and that the signature must be removed.

![A Salesforce Case created from a review: the review email in the Case feed, with the rating, review text, author, date, app version, country, language, an Open in AppReply link, the instructions for the agent and the Reply button](https://mintcdn.com/appreply/NKZaZkQeHu_Jk3fn/images/product/applications/33l-salesforce--case-review-email.png?fit=max\&auto=format\&n=NKZaZkQeHu_Jk3fn\&q=85\&s=65961d1556c84f725b99cf8a14e6a4c8)

The first line of the email is a marker that starts with `## Reply above this line ##`. AppReply uses it to find your agent's reply. Don't delete it.

## Reply from the Case

Your agent answers the review from the Case in Salesforce. They don't need an AppReply login.

**1. Reply to the review email**

In the Case, press Reply on the review email, the one from the reviewer.

**2. Write the reply above the quoted email**

Type the reply at the top of the message, above the quoted review email. Leave the quoted email in place.

**3. Remove the email signature and send**

Remove the signature. Everything above the quoted email is posted publicly as the store reply, so anything else in that part would be posted too. Then send the email.

> [!WARNING]
>
> Everything above the quoted review email is posted on the store, where anyone can read it. Remove the email signature and keep out anything private.

AppReply then treats the reply like one typed in the reply box on a review:

* The review becomes **Queued**, and **Replied** once the store accepts the reply.
* The responder is shown as the agent's name followed by **(Salesforce)**, for example `Dana Reyes (Salesforce)`.
* The ticket in AppReply is marked **Resolved**.
* The reply counts towards your plan's replies for the period, like any other reply.

To change a reply, reply to the review email again. The new reply replaces the earlier one. Huawei AppGallery and RuStore don't allow a posted reply to be changed, so there the second reply is not posted and the agent gets a [note](#notes-you-may-get-back).

Replies can only be posted for your own apps, and the app must be connected to its store in AppReply.

### Reply length limits

The review email states the limit for its store. A longer reply is not posted.

| Store | Longest reply |
| - | - |
| Google Play | 350 characters |
| App Store | 2,000 characters |
| Samsung Galaxy Store | 700 characters |
| Huawei AppGallery | 800 characters |
| RuStore | 500 characters |

## Edited reviews

If the author edits the rating, title or text of a review that was already sent, AppReply sends a second email. Its subject starts with **\[UPD]** and it begins with a line that says the author edited the review. A reply that was not posted yet may have been dropped, so the agent replies again if needed.

AppReply sends this email in the same thread as the first one. Whether Salesforce adds it to the same Case depends on how your org threads email by headers, which is an Email-to-Case setting. If it does not, Salesforce opens another Case.

## Notes you may get back

When AppReply can't post a reply, it sends a short plain email to the same Case. It starts with "AppReply did not post your reply." and says why. It also says to reply to the review email, not to the note. A note goes to your Email-to-Case address, so Salesforce can add it to the same Case or open another one.

AppReply sends at most 5 notes for one Case a day.

| What the note says | What it means and what to do |
| - | - |
| Your reply is N characters, and the store allows up to a number | The reply is longer than the store takes. Send a shorter one. See the [limits](#reply-length-limits). |
| Your plan's replies for this period are used up | Upgrade in AppReply or wait for the next period. |
| The reply arrived within two minutes of the review email | It looks like an automatic response, for example from an auto-response rule, so it was not posted. If a person wrote it, send it again. If a rule wrote it, turn the rule off for these Cases. AppReply tells the Case this once. |
| The reply failed email authentication (SPF and DKIM) | Ask your Salesforce admin to set up DKIM for outgoing email, then send the reply again. |
| The Salesforce connection has an error | Ask an AppReply admin to open Integrations and press **Send again**, then send the reply again. |
| The reply contains a character the store cannot take | Remove unusual symbols or emoji and send it again. |
| AppReply could not tell which part of the email is the reply | The quoted review email was missing. Answer from the review email in the Case, so the original is quoted below your text. |
| Your reply still seems to contain part of the original email | A piece of the quoted email was left above the quote, such as a line with only an email address or a line like `To: ...`. Delete the quoted lines, write any email address inside a sentence, and send the reply again. |
| The email had no reply text above the quoted review | Write the reply at the top, above the quoted email, and send it again. |
| This review no longer exists in AppReply | The author may have deleted or edited it. If it was edited, answer the newer email for it. |
| Replies can only be posted for your own apps | The review is from an app you track but don't own. |
| The store does not allow changing a reply that is already posted | Huawei AppGallery and RuStore. The first reply stays. |
| The store did not accept your reply | The store refused the reply after AppReply sent it. Open the review in AppReply to see it and try again. The ticket goes back to **Open**. |

AppReply does not answer automatic email such as out-of-office replies and delivery notices. It ignores them without a note.

## Errors on the Integrations page

If Salesforce can't take a review email, the connection card shows the status **Error** and a short message. The message is one of these:

* **Salesforce did not accept a review email (bounced).** Check the Email-to-Case address, then verify the connection again.
* **Salesforce did not accept a review email (marked as spam).** Check the Email-to-Case address, then verify the connection again.
* **AppReply could not email reviews to your Salesforce address.** AppReply tried to send a review email several times and gave up. Check the address, then verify the connection again.

A temporary bounce does not put the connection in error. AppReply sends that review email again.

To fix an error:

**1. Check the address and the routing address in Salesforce**

Make sure the Email-to-Case address on the card is the one Salesforce shows, and that the routing address is verified. If the address is wrong, click **Connect** and paste the right one.

**2. Click Send again**

On the connection card, click **Send again**. The status changes to **Waiting for confirmation** and AppReply emails a new confirmation link.

**3. Press Accept in Salesforce**

Open the confirmation Case, open the link and press **Accept**. The status goes back to **Active**, and AppReply tries again with the review emails that did not go out.

While the connection has an error, agents who reply to an existing Case get a note that says so.

## Disconnect Salesforce

Click the trash icon on the connection card. The card asks you to confirm and warns that replies to Cases already created will stop posting. Click **Disconnect** to confirm.

Disconnecting removes the connection with its ticket rules and its ticket history in AppReply. Nothing in Salesforce is changed: the Cases, the routing address and your Email-to-Case settings stay as they are. Replies to Cases that were already created are no longer posted. To use Salesforce again, connect it again and press **Accept** once more.

## What it does not do

* **No status sync from Salesforce.** There is no API link, so AppReply does not see a Case's status. AppReply marks its ticket **Resolved** when a reply is queued.
* **No attachments and no internal comments.** Only an email sent from the Case to the review's address counts as a reply.
* **No field mapping, no custom objects and no package** to install.
* **Not an escalation.** Reviews arrive in AppReply, Cases are created in Salesforce and replies flow back into the review. There is no "escalate this review to support" button.

## Troubleshooting

> [accordion] Use the Email-to-Case address from Salesforce, not an AppReply address
>
> AppReply refuses addresses on its own domains. Paste the routing address or the Email Services Address that Salesforce shows. If you see "Enter a valid Email-to-Case address", check the address for typos and spaces.

> [accordion] Too many confirmation emails were sent
>
> You can send up to 3 confirmation emails an hour and 10 a day for each workspace. Wait, then click **Send again**.

> [accordion] The confirmation email never arrives as a Case
>
> Check that Email-to-Case is on and that the routing address is verified in Salesforce. If you pasted the routing address, try the long Email Services Address instead. Then click **Send again** on the card.

> [accordion] The link says it is no longer valid
>
> The link expires after 7 days, and it stops working if you change the address after the email was sent. Click **Send again** on the connection card and use the newest email.

> [accordion] The connection still says Waiting for confirmation after I pressed Accept
>
> Reload the Integrations page. If the status does not change, send the confirmation again and make sure you pressed **Accept** on the page that opens from the link. Opening the link does not confirm it.

> [accordion] Cases are not being created
>
> Check that the Salesforce connection shows **Active**, that your ticket rules are on and that their conditions match. Rules need the Pro plan and only look at reviews of your own apps that arrived in the last 2 hours. For an older review, use **Create ticket**. If the card shows an error, see [Errors on the Integrations page](#errors-on-the-integrations-page).

> [accordion] The agent replied, but nothing was posted
>
> Look in the Case for a note from AppReply. It says why, and the [table above](#notes-you-may-get-back) explains what to do. If there is no note, check that the agent replied to the review email from the reviewer, wrote above the quoted email, and did not reply to an out-of-office or other automatic message.

> [accordion] The reply posted with my email signature
>
> Everything above the quoted email is posted. Remove the signature before sending. To change a posted reply, reply to the review email again. Huawei AppGallery and RuStore don't allow that.

> [accordion] The edited review opened a second Case
>
> The **\[UPD]** email goes to the same thread, and Salesforce adds it to the first Case only when your org threads email by headers. That is an Email-to-Case setting. Answer the newest email, the one that starts with **\[UPD]**.

> [card] [Set up ticket rules](https://docs.appreply.co/auto-replies/escalation.md)
>
> Configure which reviews become Salesforce Cases


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.