Skip to content

Dmx 5291 api metrics #299

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 28 additions & 24 deletions _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,44 +66,46 @@

- title: Building Applications
items:
- title: Introduction
url: /building-apps-intro
# - title: Introduction
# url: /building-apps-intro
- title: Creating an App
url: /building-apps-create-new
# - title: Creating an App Manifest - NEEDED FOR REDIRECT
# url: /building-apps-define-manifest
- title: Managing App Collaboration
url: /building-apps-manage-collabs
- title: Understanding App Types
url: /building-apps-app-types
- title: App Installation Architecture
url: /building-apps-install-arch
- title: App Versioning and Update Notification
url: /building-apps-versioning
- title: Creating a New App
url: /building-apps-create-new
- title: Creating an App Manifest
url: /building-apps-define-manifest
- title: Understanding URL Parameter Interpolation
url: /building-apps-url-parameter-interpolation
- title: Building Procore Embedded Full Screen Applications
- title: Building User Level Auth. Apps
url: /building-data-connection-apps-auth
- title: Building Service Account Auth. Apps
url: /building-data-connection-apps
- title: Building Full Screen Embedded Apps
url: /building-embedded-fullscreen-apps
- title: Building Procore Embedded Side Panel Applications
- title: Building Side Panel Embedded Apps
url: /building-side-panel-apps
- title: Building Procore Data Connection Applications with DMSA
url: /building-data-connection-apps
- title: Installing an App in the Development Sandbox
url: /building-apps-sandbox-install
- title: Promoting a Sandbox Manifest to Production
- title: Understanding URL Parameter Interpolation
url: /building-apps-url-parameter-interpolation
# - title: Installing an App in the Development Sandbox
# url: /building-apps-sandbox-install
- title: Managing App Versions & Update Notifications
url: /building-apps-promote-manifest
# - title: App Versioning and Update Notification - NEEDED FOR REDIRECT
# url: /building-apps-versioning
# - title: Submitting a Production App Manifest for Review
# url: /building-apps-review-manifest - ACTION REQUIRED - Updated for Redirect
# - title: Creating a Marketplace Listing and Submitting for Review
# url: /building-apps-submit-marketplace - ACTION REQUIRED - Updated for Redirect
- title: Managing App Collaboration
url: /building-apps-manage-collabs
# - title: Working with App Metrics
# url: /building-apps-metrics - Updated for Redirect
- title: Developer Managed Service Accounts
url: /developer-managed-service-accounts
- title: App Manifest v3.x Legacy Format
url: /building-apps-legacy-v3x-manifest-format
- title: Migrating an App Manifest from v3.x to v4.1
url: /building-apps-v3x-v41-manifest-migration
# - title: App Manifest v3.x Legacy Format - NOT NEEDED ANYMORE
# url: /building-apps-legacy-v3x-manifest-format
# - title: Migrating an App Manifest from v3.x to v4.1 - NOT NEEDED ANYMORE
# url: /building-apps-v3x-v41-manifest-migration
# - title: Maximizing Conversation Rates
# url: /building-apps-maximizing-conversion-rates - Updated for Redirect

Expand Down Expand Up @@ -264,4 +266,6 @@
- title: New Rest V2 Version
url: /new-rest-v2-version
- title: Service Account Deprecation
url: /service-account-deprecation
url: /service-account-deprecation
# - title: API Usage in Developer Portal
# url: /api-activity-export
21 changes: 11 additions & 10 deletions _includes/setup_instructions.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
## Define Setup Instructions and Post‑Installation Notes

## Define Setup Instructions and Post-Installation Notes
You must provide setup instructions and post-installation notes to help Procore users complete the installation and setup of your application in a Procore project.

You can define additional setup instructions and post-installation notes to help Procore users successfully install and set up your application within a Procore project.
Setup instructions and post-installtion notes are a great way to let your users know that there may be addtional steps required for them to properly install and set up your application.
For example, Procore users installing your application may need to go through a signup process, establish an account, or configure some settings on your platform before completing the application setup.
Instructions are displayed to the user once an application is installed, and are accessible later from within the App Management feature in the Procore Admin tool.
Clear post-installation guidance is required to ensure users know exactly what to do after installing your app. For example, they may need to sign up for an external account, configure settings on your platform, or complete authentication steps before the app can be used.

1. Expand the Instructions and Post-Installation Notes section.
2. In the Instructions URL field, enter the web address for your company support site, or web-based installation steps for your application.
3. In the Instructions Page Name field, enter the label you want to use for the hyperlink text for the Instructions URL you defined in step 2.
4. In the Post-Installation Notes field, provide a textual description of any post-installation steps required to properly complete the setup of your application.
These instructions are displayed to the user immediately after installation and remain accessible in the App Management section of the Procore Admin Tool.

![Post Install Steps]({{ site.baseurl }}/assets/guides/form-based-post-install-steps.png)
To populate the install notes, expand the **Instructions and Post-Installation Notes** section, and follow these steps to define setup instructions:

1. In the **Instructions URL** field, enter a link to your company’s support site or a page with step-by-step setup instructions.
2. In the **Instructions Page Name** field, enter the label you want to display as the hyperlink text for the Instructions URL.
3. In the **Post-Installation Notes** field, add any additional details or reminders the users need to complete setup successfully.

![Post Install Steps]({{ site.baseurl }}/assets/guides/app-install-instructions-final.png)
84 changes: 57 additions & 27 deletions _includes/url_parameter_interpolation.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,72 @@
_URL Parameter Interpolation_ is a method used in web development to insert variable data into a URL.
In the context of a Procore integration application, it is used to add specific values to the URL that can then be used to request specific data from the application server.
This technique is often used in HTTP GET requests, where data is passed as parameters in the URL itself.
## Introduction
_URL Parameter Interpolation_ lets you insert dynamic, context-specific values into a URL. In Procore embedded applications, this is how you make your app respond to the **current company** or **project context** without hardcoding values.

Interpolation comes into play when these parameter values are dynamic - that is, they change based on user input or some other variable.
Developers can use interpolation to insert these variable values into the URL.
The Procore platform supports URL parameter interpolation for different sections of the URL, which you define when adding a component.
You can interpolate values for the URL subdomain, path parameters, and query parameters.
For example:
This is commonly used in HTTP GET requests, where data is passed in the URL. Interpolation makes these values dynamic-changing based on the user's context or custom setup.

**Subdomain**
---

## Where Interpolation Works in Procore
You can use interpolation when defining a component in the Developer Portal in the following parts of a URL:
- **Subdomain**
- **Path parameters**
- **Query parameters**

This is most common in HTTP GET requests, where data is passed in the URL.

---

## Examples

**Subdomain:** Pass a value into the subdomain dynamically.
```{% raw %}
https://{{subdomain}}.domain.com
```{% endraw %}

**Path Parameters**

```{% raw %}
**Path Parameters:** Insert dynamic values directly into the path.
```{% raw %}
https://example.domain.com/{{my_path1}}/{{my_path2}}
```{% endraw %}

**Query Parameters**

```{% raw %}
?companyId={{procore.company.id}}&companyName={{procore.company.name}}&projectId={{procore.project.id}}&projectName={{procore.project.name}}&customField={{CustomField}}
**Query Parameters:** Send company or project context (and more) as query string values.
```{% raw %}
?companyId={{procore.company.id}}&projectId={{procore.project.id}}&customField={{CustomField}}
```{% endraw %}

The Procore platform provides the following built-in variables for use as query parameters.
---

## Built-in Variables
Procore provides built-in variables you can use in query parameters to automatically pass context:

- `procore.company.id` – ID of the company where the app is installed
- `procore.company.name` – Name of that company
- `procore.project.id` – ID of the project where the app is used
- `procore.project.name` – Name of that project

**Why use them?**
These variables save time and prevent mistakes. For example, use `procore.project.id` to fetch project-specific data from your system without asking the user to enter it.

---

## Custom Parameters
You can also create your own parameters to meet specific needs. These are defined by the installer during app setup and can be required or optional.

**Common use cases:**
- Link to a device ID (e.g., drone, camera).
- Pass a subscription or user ID.
- Set a region or locale for the app.

---

## How to Add Custom URL Parameters

1. In your component configuration, click **Add Parameter**.
![Component Add Param]({{ site.baseurl }}/assets/guides/form-based-component-add-param.png)

2. Define the **Name**, **Type**, **Key**, and **Description**.
![Component Add Param Field]({{ site.baseurl }}/assets/guides/form-based-component-add-param-custom.png)

* `procore.company.id` - ID of the company where the App is installed.
* `procore.company.name` - Name of the company where the App is installed.
* `procore.project.id` - ID of the project in which the App has been configured.
* `procore.project.name` - Name of the project in which the App has been configured.
3. Mark the parameter as **Required** (or leave it optional) for installation.

When included as URL parameters for your embedded (full screen or side panel) application, these values can be used to determine which company and project a user is working in.
The `procore.project.id` variable is commonly used in scenarios where data for the same Procore project lives in an external system and allows the embedded application to access the externally mapped/synced project.
4. Click **Save Parameter**.

You can also define your own custom field variables for use as query parameters.
Custom field variables can be specified as required _or_ optional.
Values for custom parameters are set by the user during installation allowing you further personalize your application.
Custom parameters are extremely flexible and can be used for any number of purposes. Some common uses for custom parameters include entering an ID number for a specific device in a drone/site camera application, specifying a membership or subscription ID for an application, or defining the locale in which an application will be used.
Once saved, your custom parameter can be used in the URL the same way as built-in variables—helping your app deliver the right data in the right context.
57 changes: 57 additions & 0 deletions announcements/app_performance_metrics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
permalink: /api-activity-export
title: Export API Activity for Your App
sub_header: Learn how to generate a 30-day summary of your app’s API usage to monitor behavior, debug issues, and improve performance.
layout: default
section_title: App Management & Monitoring
---

## Introduction
The **Performance Metrics** tab is now available for all apps in the Procore Developer Portal—covering both **Custom Apps** and **Marketplace Apps**.

This feature gives you direct access to a **30-day CSV export** of your app’s API activity in the production environment. It’s designed to help you quickly understand how your app is using Procore APIs, so you can troubleshoot issues, optimize performance, and track usage trends.
<br><br>

***
## Why This Matters
Before this update, app performance data was limited and not universally available. Now, you can:

- **Optimize efficiency** – See which endpoints are called most often and reduce unnecessary calls.
- **Troubleshoot issues faster** – Identify failed requests and when they occurred.
- **Validate expected behavior** – Confirm your app is making the right calls at the right time.
- **Track usage trends** – Monitor daily API activity to spot anomalies or spikes.
<br><br>

***
## How It Works
1. **Open the Performance Metrics tab**
- In the Developer Portal, navigate to your app and click the **Performance Metrics** tab.
2. **Request your API activity CSV**
- Click **Generate CSV Export**.
- You’ll receive an email with your CSV file attached.
3. **Review your API activity**
- The CSV includes the last 30 days of your app’s **production** API calls, organized by day.
<br><br>

***
## What’s in the CSV

| Column | Description |
|--------------------|-----------------------------------------------------------------------------|
| Date | The date of activity |
| Response Code | Indicates whether the call was successful or failed |
| HTTP Method | The HTTP method used (GET, POST, PUT, DELETE, etc.) |
| Normalized Route | The standardized API route (e.g., `/v1.0/projects/:project_id/observations`)|
| Count | The total number of calls for that route, method, and status on that day |

<div class="details-bottom-spacing"></div>
<div class="details-bottom-spacing"></div>

***
## Tips for Using This Data
- **Spot errors quickly** – Filter by failed calls to identify problem endpoints.
- **Improve performance** – Reduce unnecessary calls to high-traffic endpoints.
- **Monitor adoption** – See if your most important features are being used.
- **Detect unusual patterns** – Look for spikes or drops in usage that may indicate issues.

By regularly reviewing your app’s API activity, you can maintain reliability, improve user experience, and ensure efficient API usage.
Binary file added assets/guides/app-install-instructions-final.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/guides/app-install-instructions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/guides/app-install-instructions2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading