Data Exchange

Have more questions? Submit a request

The DroneDeploy Data Exchange is a robust data solution designed for advanced enterprise customers who require deep integration of reality capture data into internal business intelligence systems.

While the Analytics Dashboard provides standardized answers regarding your organization's usage, the Data Exchange allows you to access structured data for custom reporting. Use this tool to export raw, schema-based data to your own data warehouse, enabling you to combine DroneDeploy metrics with internal data sources, such as MSFT Active Directory or Asset Management systems.

Availability

  • Subscriptions: Available for Enterprise customers. Contact your CSM to enable this feature.
  • Format: Structured data designed for SQL integration (Relational Star Schema).

Data Architecture

The Data Exchange model uses several tables to analyze platform usage. The relational model (Fact and Dimension tables) allows for complex queries across your entire organization.

What types of data are available?

The DroneDeploy data instance includes several tables that you can use to analyze your usage on the platform. Review the complete customer model below.

(Right-click the table + Open the image in a new tab to zoom in):

erd.png

Activity

This table contains all of the activity made within your organization, including:

  • Captures: Captured And Processed, Captured Only and Processed Only
  • Analysis: Annotation, Issue, Live Stream, Overlay and Link Share
  • Views: Annotation View, Map View, Walkthrough View, Issue View, Media View, Report View and Link Share View
  • Exports
  • Admin: Plan, Folder, Organization and User actions such as permission changes, StructionSite migration dates, deletions and exports

In a Kimball/Star schema, this table functions as a Fact table. This is an aggregated activity table, meaning the counts of each activity are aggregated in the activity_count column. The lettercase of activity_record_type corresponds to the respective detail of the dimensional tables (for example, record_type on the Plan table, export_layer on the Export table and type on the Annotation table), and defaults to proper case otherwise.

Note on the is_deleted field: This flag indicates whether the underlying object (annotation, issue, overlay and so on) or its parent container (plan, project) was deleted after the activity was recorded. When querying activity data, consider your use case:

  • Include deleted activity (is_deleted = true or is_deleted = false): use this for total usage metrics, billing calculations, or historical analysis where you need to account for all activity regardless of whether the object still exists.
  • Exclude deleted activity (is_deleted = false): use this for current state analysis, active project metrics, or when you want to analyze only retained or existing work.

Annotation

This table stores user-created annotations such as location, distance, area, surface area, or volume measurements on a Plan.

annotation.png

Export

This table provides a record of all files and their formats sent using the Export function within the DroneDeploy application, including auto-exports.

Table of Definitions

Folder

A folder contains zero or more projects or sub-folders to organize data in DroneDeploy into groups or locations.

shared_users example: 

[{"user_id": "userid0", "permission": "viewer"}, {"user_id": "userid1", "permission": "editor"}]

Issue

This table contains a log of all user-created issues on images, 3D models, maps, panoramas, or walkthroughs. You can assign priority and users to specific projects through issues. Safety AI summarizes safety risks found during ground 360° walks to speed triage and trend analysis, while Inspection AI automates asset QA checks to flag issues earlier and reduce rework—all aligned to your levels and locations for precise reporting. Issues created by these AI agents are flagged with is_ai_generated = true.

AI Trade-Location-Level Completion

AI-powered construction tracking provides automated insights into trade completion by Level (the level or floor of the building) and Location (synonymous with a room on that floor). This table supports Progress AI (filter by ai_product = 'progress'); additional AI report types may be added to this table as they become available. Progress AI updates as new captures are processed to spotlight momentum, stalls and stacking so teams can coordinate earlier and stay on schedule.

Each row represents a single capture or report for a specific location-trade combination at the level-location granularity in a project. Use this table to build trends, detect stalls and compare trades across levels or locations.

Progress values never decrease. Once a location-trade reaches 100% progress, it remains at 100% in future captures. For example, if a location-trade reaches 100% completion and the completion criteria for that trade are later updated, the progress stays at 100% rather than resetting to reflect the new criteria. This keeps historical progress trends moving forward.

ai_trade_location_completion.png

Location

This allows users to organize data across DroneDeploy plans and maps within a project.

Location-Plan Relation

This table allows users to connect data in locations across DroneDeploy maps and plans. Much like Levels, Locations persist across all maps/plans in a Project. Because a many-to-many relationship exists between Plan and Location, this table bridges the two together for easier navigation.

Overlay

This table tracks CAD design surfaces, shapefiles, DXFs, GeoTIFFs, and other imagery uploaded or imported via integrations (such as Procore or BIM 360) to aid in analysis.

overlay.png

Flight Record

This table contains flight-specific information such as aircraft model, duration, maximum speed and altitude. It includes flights that may have a null plan_id from certain manual or inspection flight workflows, where a flight log can be generated before a plan is created or linked. This is expected for those workflows, but it may affect custom reporting that joins on plan_id. Consider filtering to plan_id IS NOT NULL when a plan-level join is required.

flight_record.png

Plan

The Plan object is the core object that holds the drone/robot path and the resulting data (map, 3D model, walkthrough, panorama, etc.). This remains the central object even if you upload data directly to the Map Engine via the UI or API without executing a flight plan.

plan.png

Table of Definitions

Note on epsg_code: The Plan EPSG (European Petroleum Survey Group) code, or Plan CRS (Coordinate Reference System), is the survey coordinate system used for the map's ground control points (GCPs) or checkpoints. This CRS tells DroneDeploy how to interpret and transform the GCP or checkpoint coordinates. It's set when a user uploads a GCP CSV for a plan, and may differ from the Project CRS if the project's coordinate system changed after the map was processed, or for legacy or migrated plans. This field is null when no plan-level GCP EPSG was used, for example in RTK-only or custom-grid-only workflows.

Project

A Project refers to an individual site or location.

project.png

Note on epsg_code: The Project EPSG (European Petroleum Survey Group) code, or Project CRS (Coordinate Reference System), is the coordinate reference system chosen in Project Settings that determines how coordinates and exports are displayed at the project level. For standard CRSs, this is a 4-6 digit EPSG code as a string, for example 2227. For projects using a project-level custom grid, this is a label in the form Custom grid - <file_name>, derived from the uploaded grid file name. A null value means no Project CRS has been configured (no EPSG and no custom grid). This value changes when a user updates the Project CRS in Project Settings or uploads a project-level custom grid.

Stockpile Material

User-created materials for stockpile volume calculations. Materials define the density and price per unit used when measuring stockpile volumes with annotations.

stockpile_material.png

Data on Demand Flight Bank

This table represents a customer's purchased pool of Data on Demand credits. This table contains flight banks from 2026 onward.

data on demand flight bank.png

Data on Demand Missions

This table represents individual Data on Demand missions that have been executed or scheduled. This table contains flight banks from 2026 onward.

data on demand missions.png

User

This table lists all users and their default roles, both internal and external. The table includes a job_title field for each user.

user.png

User Group

This table contains custom groupings designated by the organization. Users can belong to multiple groups.

What types of questions can be answered with the data?

The Data Exchange provides the information needed to answer questions such as:

  • When was the first and last activity date for my organization?
  • How often are my pilots capturing each month?
  • How many external users are in my organization?
  • What is the capture rate for each group within my organization?
  • How many active projects did my organization have this month?
  • What are my most viewed projects and where are they located?

The primary value comes from joining DroneDeploy data with your organization's internal data to answer advanced questions:

  • What level of drone usage has Department X (as defined in MSFT Active Directory) performed to date?
  • What is the latest reality capture data for Asset ID 1234 located at X,Y?

FAQs

Q: How is this different from the GraphQL API? A: While our GraphQL API is ideal for automating workflows and querying individual objects (No-SQL), the Data Exchange is designed to pull bulk data for all objects into your data warehouse for SQL integration.

Q: How do I get access to the Data Exchange? A: For more information or to enable this feature, contact your Customer Success Manager or Account Executive.

v2

Articles in this section

Was this article helpful?
0 out of 0 found this helpful