Skip to content

Creating a Procore Sandbox App

Hagen Fritz edited this page Oct 31, 2022 · 6 revisions

This page details the process of creating a sandbox app in Procore. Procore has documentation on how to do this so this page adds additional details that are not explicitly stated in the documentation to help alleviate any confusion that might occur when you -- the reader -- try to set up your own sandbox app.

Developer Account

Start by registering a developer account through Procore: Procore Developers.

Follow the steps outlined by Procore which can be found here: Registering a New Developer Account

Create a New App

Using the Procore API requires that you create an app which can then be used to access Procore information. The steps for doing this are here: Creating a New App. Once you have done these steps, you can log into a Sandbox company by navigating to sandbox.procore.com which will redirect you to login with the credentials you just created in a previous step. The Sandbox is setup similarly to any other Procore company and has some projects, documents, etc. that you can find. For every app that you create, Procore will create an associated Sandbox company. However, you can install your app to any real or Sandbox company that you like.

Create Your App's Manifest

You need to first setup a few things in your app before you install it to your company's page. Start by logging in with your new credentials here: Procore Developers and find the app you created (you might have multiple), click on it, and view the app overview. This page has a few key components that I describe below: * App Version Key: Found in the "Manage Manifests" sub-window, this string of letters and numbers will be how companies like your Sandbox company can install your app. * Cliend ID: The unique identifier for your app * Client Secret: The app's password * Sandbox URL: The Sandbox company's URL * Redirect URI: Learn more about this here

Now to create your app's manifest:

  1. In the Manage Manifests sub-window, click the orange button for "Create New Version". Once you do this step, you should see the template that Procore provides.
  2. Remove the json header for iframe since you won't need this and Procore will later populate it for you
  3. At the top, find the button to "Copy Code Snippet" under the "Data Connection" header. Paste this into the instances list under oauth. We are using "client_credentials" so remove all the filler text for the value for grant_type.
  4. Your manifest should look like:
{
  "post_installation_instruction": {
    "notes": "For Data Connection Apps, you may need to take additional steps in the third-party App's system to complete the App setup process. For more information, visit the support article below or contact the App developer through the Procore Marketplace.",
    "page": {
      "url": "https://support.procore.com/integrations/app-setup-instructions",
      "label": "App Setup Instructions"
    }
  },
  "components": {
    "oauth": {
      "instances": [
        {
          "grant_type": "client_credentials"
        }
      ]
    }
  }
}
  1. Now you need to use the "Permissions Builder" to set up which data your app will be able to access from the company. Find the button for "Open Builder" in the top-left under the "Permissions Builder" heading and click that.
  2. You will need to set the permissions at both the Company and the Project Level. The permissions that you configure will depend on the purpose for your app. Once you have decided on the permissions, click "Update Manifest". You should now see a permissions key under oauth in your app's json manifest with a large number of permission key/value pairs.
  3. Now you can click the orange button in the bottom right to "Create".

Update Redirect URI

Since we are using the Client Credentials Grant Type, we need have to change the Redirect URI to:

urn:ietf:wg:oauth:2.0:oob

This option is found in the Sandbox OAuth Credentials tile.

Next Steps

Success! Your app should be ready for installation to your Sandbox company for testing. See the following links for more information: