# Submit App for Review

Once your Facebook channel is set up in Cloud Voice, the Meta app behind it still runs in development mode, so only your own test accounts can use it. Before real customers can reach you, you have to prove to Meta that the integration works and submit the app for App Review. This page walks you through validating message delivery, requesting the permissions the integration needs, and sending the app to Meta for approval.

## Before you submit

Confirm that messages flow correctly between your Facebook Page and Cloud Voice, and capture the evidence Meta will ask for.

1. (Optional) [Add a user as a Tester](/pbx/contact-center-guide/add-a-tester-for-meta-app/).

   Only your Meta Developer account can interact with the app by default, and Meta requires a Facebook account to test it. You can run the test with your own developer account, but adding a Tester with limited access keeps your developer account out of the process and is the safer approach.

2. Test message delivery and record two screencasts. You will upload both during App Review, so keep them handy:

   - A screencast showing you send a message to your Facebook Page and that message being received and answered in Cloud Voice within the 24-hour window.
   - A screencast showing the app apply a human agent tag to reply to a customer after the 24-hour window has closed.

   :::note
   Facebook only lets your app message a customer for 24 hours after that customer's last message (its "standard messaging window"). To reply after the window closes, the app attaches a "human agent" tag. That is why Meta asks for two separate screencasts: one inside the window, and one that shows the tag in use outside it.
   :::

:::tip
Reviewing Meta's [App Review best practices](https://developers.facebook.com/docs/resp-plat-initiatives/app-review/before-you-submit?locale=en_US) before you submit can raise the quality of your request and lower the odds of a rejection.
:::

## Step 1. Complete app settings

1. Open the Basic settings for your Meta app:

   a. Sign in to the [Meta for Developers portal](https://developers.facebook.com) and open **My Apps** from the top menu.

      ![The My Apps menu on the Meta for Developers portal](/images/pbx/meta-for-developers-myapp-facebook.png)

   b. Select your Meta app from the list.

      
      ![Cloud Voice, the app list with a Meta app selected](/images/pbx/select-facebook-app.png)

   c. In the left navigation, go to **App settings > Basic**.

2. At the top of the page, fill in the following:

   
   ![Cloud Voice, the Basic settings page with privacy policy, icon, and category fields](/images/pbx/facebook-basic-setting.png)

   - **Privacy Policy URL**: Enter your organization's privacy policy URL.
   - **App icon**: Upload your organization's icon.
   - **Category**: Select **Messaging**.

3. Scroll to the bottom of the page and add a website platform so Meta has the URL of your PBX (Private Branch Exchange, your Cloud Voice phone system):

   
   ![Cloud Voice, adding a website platform with the PBX domain in the Site URL field](/images/pbx/facebook-add-platform-pce.png)

   a. Click **Add platform**.

   b. Select **Website**, then click **Next**.

   c. In the **Site URL** field, enter the **domain name** of your PBX system.

4. Click **Save changes**.

## Step 2. Select permissions and features

1. In the left navigation, go to **App Review > Permissions and Features**.

2. Search for each of the permissions the integration relies on, **pages_messaging**, **Human Agent**, and **Business Asset User Profile Access**: and click **Request advanced access** on each one to add it to your submission.

   ![The Permissions and Features page with advanced access requested for the required permissions](/images/pbx/facebook-search-permissions-features.png)

3. Click **Continue request**.

## Step 3. Remove unnecessary permissions

1. In the left navigation, go to **Messenger > Messenger API Settings**.

2. In the **3. Complete App Review** section, click **Request Permission**.

   
   ![Cloud Voice, the Complete App Review section with the Request Permission button](/images/pbx/facebook-request-permissions.png)

3. Clear the checkboxes for any permissions you do not need, then click **Request Permission**. Meta then takes you to **App Review > Requests**.

   ![The permission list with unnecessary permissions unchecked](/images/pbx/facebook-remove-unnecessary-permission.png)

## Step 4. Answer data handling questions

1. In the left navigation, go to **App Review > Requests**.

2. Scroll to the **Data handling questions** section and click **Answer questions about data handling**.

   
   ![Cloud Voice, the Data handling questions section on the Requests page](/images/pbx/facebook-data-handling-questions.png)

3. Answer the questions based on your situation, then click **Submit**.

   
   ![Cloud Voice, the data handling questionnaire ready to submit](/images/pbx/facebook-data-handling-descr.png)

4. Justify the **pages_messaging** permission and show how the app uses it:

   a. Click **How will your app use the advanced access pages_messaging permission?**.

      ![The pages_messaging justification panel](/images/pbx/facebook-pages-messaging.png)

   b. Paste a description like the following into the detail box:

      ```text
      This app integrates Cloud Voice with Facebook Messenger. With the pages_messaging permission, agents can handle Facebook Page messages directly inside Cloud Voice.
      ```

      
      ![Cloud Voice, the pages_messaging description filled in](/images/pbx/facebook-pages-msg-descr.png)

   c. Under **Test and reproduce the functionality of your integration**, select your Facebook Page, then paste reproduction steps into the text field. Adjust the template for your own environment:

      ```text
      Step 1: Log in to Cloud Voice with the following credentials:
      Login address: {pbx_domain_name}
      Username: {email_address}
      Password: {password}

      Step 2: Log in to Facebook with the following credentials and send a message to the Facebook Page: {url_for_facebook_page}
      Email or phone: {email_address_or_phone_number}
      Password: {password}

      Step 3: Receive and reply to the message on Cloud Voice.
      ```

      For example:

      ```text
      Step 1: Log in to Cloud Voice with the following credentials:
      Login address: https://pbx.example.com
      Username: agent@example.com
      Password: rz9nDg3CrO

      Step 2: Log in to Facebook with the following credentials and send a message to the Facebook Page: https://www.facebook.com/profile.php?id=61563743597525
      Email or phone: tester@example.com
      Password: YpeS345joi

      Step 3: Receive and reply to the message on Cloud Voice.
      ```

      
      ![Cloud Voice, the reproduction steps and Page selection for pages_messaging](/images/pbx/facebook-page-msg-reproduce-pce.png)

      :::caution
      Meta's reviewers log in with exactly the credentials you paste here, so they must be real and working at review time. Use a dedicated test agent account rather than a personal or administrator login, because you are handing this password to a third party.
      :::

   d. Click **Upload file** and upload the screencast that shows a message being sent to your Facebook Page and received and answered in Cloud Voice.

      ![The Upload file control for attaching the screencast](/images/pbx/facebook-upload-page-video.png)

   e. Select the checkbox to agree to comply with the allowed usage, then click **Save**.

      ![The allowed-usage agreement checkbox above the Save button](/images/pbx/facebook-save-page-permission.png)

5. Justify the **Business Asset User Profile Access** permission and show how the app uses it:

   a. Click **How will your app use the advanced access Business asset user profile access feature?**.

      ![The Business Asset User Profile Access justification panel](/images/pbx/facebook-business-asset.png)

   b. Paste a description like the following into the detail box:

      ```text
      This app integrates Cloud Voice with Facebook Messenger. With the Business Asset User Profile Access permission, agents can see the names of the Facebook users who message the Page from within Cloud Voice, so they can tell customers apart and provide better service.
      ```

      
      ![Cloud Voice, the Business Asset User Profile Access description filled in](/images/pbx/facebook-business-asset-descr.png)

   c. Click **Upload file** and upload the same screencast you attached for **pages_messaging**.

   d. Select the checkbox to agree to comply with the allowed usage, then click **Save**.

      ![The uploaded screencast confirmed for the Business Asset permission](/images/pbx/facebook-upload-asset-video.png)

6. Justify the **Human Agent** permission and show how the app uses it:

   a. Click **How will your app use the advanced access Human Agent feature?**.

      ![The Human Agent justification panel](/images/pbx/facebook-human-agent.png)

   b. Paste a description like the following into the detail box:

      ```text
      This app integrates Cloud Voice with Facebook Messenger. Under Facebook's rules, a message tag is required to send messages outside the 24-hour standard messaging window. With the Human Agent permission, an agent can apply the human_agent tag to keep helping a customer when their inquiry cannot be resolved within that window.
      ```

      
      ![Cloud Voice, the Human Agent description filled in](/images/pbx/facebook-human-agent-descr.png)

   c. Click **Upload file** and upload the screencast that shows the app using a human agent tag to reply to customer messages.

   d. Select the checkbox to agree to comply with the allowed usage, then click **Save**.

      ![The uploaded screencast confirmed for the Human Agent permission](/images/pbx/facebook-save-agent-permission.png)

7. At the bottom of the page, click **Submit for Review** and enter your password to confirm.

## Result

Your submission joins Meta's review queue. Expect the review result within a few days.

## What to do next

Once your app passes App Review, switch it to Live mode in the Meta for Developers portal so the Facebook channel works for all customers.

:::caution
Your app stays in development mode until you switch it to Live, and while it is in development mode only your Meta Developer and Tester accounts can use the Facebook channel. Real customers cannot message your Page until the app is Live, so do not skip this step.
:::

![Cloud Voice, the app mode toggle set to Live in the Meta for Developers portal](/images/pbx/facebook-live-mode.png)
