Overview
This article covers the public data model exposed by the package—the objects, settings, and metadata types that Salesforce administrators and developers can query, report on, or configure.
Understanding Object Types
The package uses three types of Salesforce data structures:
- Custom Objects
- Custom Settings
- Custom Metadata Types
Custom Objects
These objects store records that can be queried, reported on, and integrated with standard Salesforce features like list views and page layouts.
Folder Management Objects
FRUP__c (Folder-Record-User-Permission)
Purpose: The central junction object that connects Salesforce records to Box folders and defines user access levels.
When to use: Query this object to report on folder collaborations, audit user permissions, or understand which users have access to which Box folders for specific Salesforce records.
How it works:
- Each record represents one user’s permission to one Box folder associated with one Salesforce record
- Multiple FRUP records can reference the same Salesforce record (via
Record_ID_Indexed__c), with one record per user defining their permission level - The package’s scheduled sync jobs automatically create and update these records based on your folder mapping configuration
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| Record ID Indexed | Record_ID_Indexed__c | Text (indexed) | String version of the parent Salesforce record ID. Always use this field in queries instead of Record_ID__c for performance. |
| Folder ID | Folder_ID__c | Text | Box folder ID associated with this permission |
| Collaboration ID | CollaborationID__c | Text | Box collaboration ID used when updating permissions |
| Salesforce User | Salesforce_User__c | Lookup (User) | The Salesforce user who has this permission |
| Permission | Permission__c | Picklist | Access level: Read, Read/Write, Owner, etc. |
| BOSS Status | BOSS_Status__c | Text | Internal status flag (Converted/Delete) used by scheduled permission sync jobs |
Relationships:
- One Salesforce record → Many FRUP records (one per user with access)
- One Box folder → Many FRUP records (one per user with access)
- One User → Many FRUP records (one per folder they can access)
Important: This is the primary object customers query when building reports on folder collaborations and permissions.
Folder_Meta__c (Folder Meta)
Purpose: Catalog object that tracks Box folders managed by the package, storing folder metadata to prevent duplicate mappings and enable share links.
When to use: Typically managed automatically by the package. Reference this object if you need to see which Box folders are being tracked or access folder share links programmatically.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| Folder ID | Folder_ID__c | Text | Box folder ID |
| Folder Name | Folder_Name__c | Text (unique) | The Box folder’s name |
| Folder Share Link | Folder_Share_Link | URL | Public or shared link to the Box folder |
Relationships:
- Referenced by package Apex code and batch jobs when synchronizing folder information with Box
- Indirectly related to FRUP records through the shared
Folder_ID__cfield
Box Sign Objects
Object Hierarchy
BoxSign__c (Sign Request)
└── BoxSign_Signer__c (Individual Signer)
└── BoxSign_Signer_Input__c (Form Fields/Values)BoxSign__c
Purpose: Parent object representing a single Box Sign request.
When to use: Query this object to report on signature request status, track completion rates, or build dashboards showing sign activity across your Salesforce records.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| Status | Status__c | Picklist | Current state: Draft, Sent, Viewed, Completed, Declined, Expired, etc. |
| BoxSign URL | BoxSign_url__c | URL | Link to the Box Sign session |
| Error Message | Error_Message__c | Long Text | Any error message returned by the Box Sign API |
| Created Date | CreatedDate | DateTime | Standard timestamp when the record was created |
| Name | Name__c | Auto-Number | Unique identifier for the sign request |
| Account | Account__c | Lookup (Account) | Optional parent Account record |
| Opportunity | Opportunity__c | Lookup (Opportunity) | Optional parent Opportunity record |
| Contact | Contact__c | Lookup (Contact) | Optional parent Contact record |
| Contract | Contract__c | Lookup (Contract) | Optional parent Contract record |
Relationships:
- Parent to multiple
BoxSign_Signer__crecords (one per signer) - Optional lookups to standard Salesforce objects (Account, Opportunity, Contact, Contract)
BoxSign_Signer__c
Purpose: Represents an individual signer on a Box Sign request.
When to use: Query this object to track individual signer status, identify pending signers, or report on signer completion times.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| BoxSign | BoxSign__c | Master-Detail (BoxSign__c) | Parent signature request |
Email__c | Signer’s email address | ||
| Name | Name__c | Auto-Number | Unique identifier for this signer |
| Status | Status__c | Picklist | Current state: Awaiting, Signed, Declined, etc. |
| Contact | Contact__c | Lookup (Contact) | Optional link to a Salesforce Contact record |
| Signer ID | SignerId__c | Text | External identifier from Box |
| Message | Message__c | Long Text | Optional message sent to the signer |
Relationships:
- Child of
BoxSign__c(master-detail) - Parent to multiple
BoxSign_Signer_Input__crecords (form fields) - Optional lookup to Contact
BoxSign_Signer_Input__c
Purpose: Stores form field definitions and captured values for a signer (checkboxes, date fields, text inputs, etc.).
When to use: Query this object to extract data entered by signers during the signing process, such as agreement dates, initials, or custom form responses.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| BoxSign Signer | BoxSign_Signer__c | Master-Detail (BoxSign_Signer__c) | Parent signer record |
| Type | Type__c | Text | Description of the input type |
| Type Code | Type_Code__c | Number | Numerical code identifying the input kind |
| Checkbox Value | Checkbox_Value__c | Checkbox | Boolean input value |
| Date Value | Date_Value__c | Date | Date input value |
| Text | Text__c | Text | Free-form text value |
| Label | Label__c | Text | Label shown on the signature form |
| Page Index | Page_Index__c | Number | Page number within the document |
| Exception | Exception__c | Long Text | Error details if validation failed |
| External Id | External_Id__c | Text | External identifier from Box |
Relationships:
- Child of
BoxSign_Signer__c(master-detail) - Leaf node in the Box Sign hierarchy
Document Generation Objects
DocGen_Template__c
Purpose: Stores metadata about document generation templates used by Box Document Generation. Each template references a Box file and can optionally be enabled for Box Sign.
When to use: Create template records to make document generation available to users. Query to build picklists of available templates or to track template usage.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| Code | Code__c | Text (unique) | Developer name for the template |
| Description | Description__c | Long Text | Human-readable description |
| Folder Id | Folder_Id__c | Text | Box folder containing the template file |
| File Id | File_Id__c | Text | Box file ID of the template |
| File Version Id | File_Version_Id__c | Text | Box version identifier |
| Available for Box Sign | Available_for_Box_Sign__c | Checkbox | Enables integration with Box Sign |
| Generated File Name | Generated_File_Name__c | Text | Default name for generated documents |
Relationships: Standalone object. May be associated with Salesforce records through custom automation or flows.
Custom Settings
Custom Settings store configuration data and are accessed via Apex rather than standard SOQL queries. They cannot be used in reports but provide efficient access to configuration values.
Folder_Details__c (Folder Details) – List Custom Setting
Functional Area: Folder Management
Purpose: Stores basic folder mapping configuration used by the package’s setup flows and UI components.
When to use: Primarily populated during initial setup. Administrators may need to edit these settings when switching object folder mappings or changing the root folder.
Key Fields:
Field | API Name | Type | Description |
|---|---|---|---|
| FolderId | box__FolderId__c | Text | Box folder ID |
| Folder Name | box__Folder_Name__c | Text | Cached folder name from Box |
How to access:
- Via Setup → Custom Settings → Folder Details → Manage
- Via Apex:
box__Folder_Details__c.getAll()orbox__Folder_Details__c.getValues(name)
BoxSignSettings – Hierarchy Custom Setting
Functional Area: Box Sign
Purpose: Stores org-wide configuration for Box Sign features and Box Sign API parameters.
When to use: Administrators configure this during initial setup or when customizing Box Sign behavior. Developers reference these settings when building custom integrations.
Key configuration options:
- Default signers and signer order
- Prefill tag mappings for document merge fields
- Reminder email body and subject line templates
- Box Sign API callback URLs and parameters
- Feature flags and operational settings
How to access:
- Via Setup → Custom Settings → BoxSignSettings → Manage
- Via Apex:
box__BoxSignSettings__c.getInstance()
Custom Metadata Types
BoxSignDisplaySettings (BoxSignDisplaySetting__mdt)
Functional Area: Box Sign
Purpose: Controls UI and display behavior for Box Sign, such as button labels, page layouts, and field visibility.
When to use: Referenced automatically by package components. Developers can extend to customize the Box Sign UI experience.
Key benefits:
- Deployable across orgs via change sets or source control
- Can be included in managed packages
- Version-controlled with code
How to access:
- Via Setup → Custom Metadata Types → BoxSignDisplaySetting → Manage Records
- Via Apex: Query using SOQL (
SELECT ... FROM box__BoxSignDisplaySetting__mdt)
Reporting and Usage
This section applies to Custom Objects only. Custom Settings and Custom Metadata Types are not reportable through standard Salesforce reports.
Standard Report Types
The package installs standard report types for easy reporting:
- Box Folder Collaborations – based on
box__FRUP__c - Box Sign Requests – based on
box__BoxSign__cand related objects
Custom Reporting
box__FRUP__c is the primary junction object for folder permissions. Build custom report types to join FRUP with your custom objects or to create cross-object reports.
Box Sign objects follow a simple parent-child hierarchy (box__BoxSign__c → box__BoxSign_Signer__c → box__BoxSign_Signer_Input__c), making them straightforward to extend with custom report types or SOQL queries.
box__DocGen_Template__c can be reported on to track available templates, usage patterns, or audit template configurations.
Best Practice: When querying
box__FRUP__c, always filter onbox__Record_ID_Indexed__cfor optimal performance. The unindexedbox__Record_ID__cfield exists only for legacy compatibility.
Common Query Patterns
Find all users with access to a specific record’s Box folder:
SELECT box__Salesforce_User__r.Name, box__Permission__c, box__Folder_ID__c
FROM box__FRUP__c
WHERE box__Record_ID_Indexed__c = '001...'Find all pending Box Sign requests:
SELECT box__Name__c, box__Status__c, box__BoxSign_url__c
FROM box__BoxSign__c
WHERE box__Status__c IN ('Draft', 'Sent', 'Viewed')Extract signer input data from completed signatures:
SELECT box__BoxSign_Signer__r.box__Email__c, box__Label__c, box__Text__c, box__Date_Value__c
FROM box__BoxSign_Signer_Input__c
WHERE box__BoxSign_Signer__r.box__BoxSign__r.box__Status__c = 'Completed'
Reference: Box for Salesforce Architecture - ERD