Custom Objects - User Guide

Custom Objects - User Guide

Custom Objects User Guide

Overview

The Salesforce Importer for JSM Assets now supports Custom Objects (Beta), allowing you to import any custom Salesforce object into your JSM Assets schema. This guide walks you through adding, configuring, and importing custom Salesforce objects.

What Are Custom Objects?

Custom objects in Salesforce are user-defined tables that extend the functionality of your Salesforce org. They follow the naming convention ObjectName__c for org-wide custom objects or NamespaceName__ObjectName__c for managed package objects.

Examples:

  • Invoice__c - A custom invoicing object

  • Subscription__c - A custom subscription tracking object

  • MyApp__CustomObject__c - A custom object from a managed package

Prerequisites

Before using custom objects, ensure:

  1. Source Connection: You have already connected to your Salesforce org (via SourceConnect)

  2. Destination Connection: You have already connected to your JSM Assets workspace (via DestinationConnect)

  3. Object Schema: You have created an Object Schema in JSM Assets

  4. Permissions: Your Salesforce user has access to the custom objects you want to import

Step-by-Step Guide

Step 1: Fetch Available Custom Objects

  1. Navigate to the Admin section of the app

  2. Select Custom Objects (Beta) from the left menu

  3. Click the Add Custom Object action button to expand the custom object section

  4. Click Fetch from Salesforce to retrieve all custom objects available in your org

Note: This button will change to Refresh from Salesforce after the first fetch.

Step 2: Add a Custom Object

  1. After fetching, you'll see a dropdown menu showing all available custom objects

  2. The dropdown displays both the Display Name and the Salesforce API Name

    • Example: Invoices (Invoice__c)

  3. Select the custom object you want to import

  4. Click Add Custom Object

  5. You'll see a success message when the object is added

Error Handling:

  • If you get an error that the object already exists, check if it was previously added or is a standard object

  • Ensure your Source connection is active and you have permissions to view the object

Step 3: Configure Attributes

Once a custom object is added, you need to configure which fields (attributes) to import:

  1. In the Custom Objects table, find your newly added object

  2. Click the Configure button next to the object

  3. The system will fetch all available fields from your custom object in Salesforce

In the Configuration Modal:

Select Attributes to Import

  • A list of all fields in the custom object is displayed

  • System fields are automatically excluded: Id, IsDeleted, CreatedById, LastModifiedById, SystemModstamp, attributes

  • Use Select All to include all available fields

  • Use Deselect All to start fresh

  • Check/uncheck individual fields to customize your selection

Best Practices:

  • Only select fields you need to reduce import time and storage usage

  • At least one field must be selected (required)

  • Maximum 30 fields per custom object (system limitation)

Choose a Label Attribute

The "label attribute" is the field that will display as the object's name in JSM Assets:

  1. After selecting attributes, scroll down to Select label attribute

  2. Choose which selected attribute should be the display name

    • This field must be one of your selected attributes

    • Typically, this is a "Name" field if available

    • Common choices: Name, Title, Description, or API_Name

Example: If you're importing an Invoice__c object, you might select InvoiceNumber__c as the label attribute

Step 4: Save Configuration

  1. After selecting your attributes and label, click Save Configuration

  2. You'll see a success message confirming the configuration is saved

  3. The Custom Objects table now shows:

    • Number of configured fields (in a green badge)

    • The selected label attribute

Status Indicators:

  • Green Badge (e.g., "15 fields") = Successfully configured

  • Red Badge ("Not configured") = Still needs attribute configuration

Step 5: Build/Upgrade Schema

After configuring all your custom objects, you must build the schema:

  1. Click the Build/Upgrade Schema button at the bottom

  2. This creates or updates your Object Schema in JSM Assets with the new custom object types and their attributes

  3. Check your Debug Logs (in the Admin section) to verify the schema build succeeded

What Happens During Schema Build:

  • Object types are created for each custom object

  • Attributes are mapped based on your Salesforce field types

  • The schema is updated in your JSM Assets workspace

Managing Custom Objects

View Configured Objects

The Custom Objects table shows:

  • Name: Display name you gave the object (e.g., "Invoices")

  • Salesforce API Name: The actual Salesforce API name (e.g., "Invoice__c")

  • Attributes Configured: Number of fields selected for import (or "Not configured")

  • Label: The field used as the display name in Assets

  • Actions: Configure or Remove buttons

Reconfigure an Object

  1. Click Configure on an existing object

  2. Change your field selections or label attribute

  3. Click Save Configuration

  4. Rebuild the schema to apply changes

Remove a Custom Object

  1. Click Remove next to the object you want to delete

  2. The object is immediately removed from the custom objects list

  3. You'll need to rebuild the schema to fully remove it from JSM Assets

Field Type Mapping

When you configure a custom object, the system automatically maps Salesforce field types to JSM Assets attribute types:

Salesforce Field Type

JSM Assets Type

Notes

Salesforce Field Type

JSM Assets Type

Notes

Text

Text

Standard text field

TextArea

Text

Multi-line text

Number

Number

Numeric values

Currency

Number

Currency values

Percent

Number

Percentage values

Date

Date

Calendar date

DateTime

Date

Date and time

Checkbox

Boolean

True/False values

Picklist

Select

Single-select from values

MultiSelectPicklist

Select

Multi-select from values

Reference

Reference

Link to another Salesforce object

Lookup

Reference

Link to parent object

Important: Some Salesforce field types may not be fully supported. Check your import logs if you encounter issues.

Importing Data

Once your schema is built with custom objects:

  1. Go to Build Schema section

  2. Go to Source Filter to filter which records to import

  3. Go to Build Run to execute the import

  4. Custom object records will be imported alongside standard objects

  5. Monitor Import Status to track progress

Troubleshooting

Could not fetch custom objects from Salesforce

Solution:

  • Verify your Source connection is still active

  • Check that your Salesforce user has "View All" permissions on custom objects

  • Try refreshing from Salesforce again

Custom object not found or Insufficient permissions

Solution:

  • Confirm the object exists in your Salesforce org

  • Verify your user profile has read access to the object

  • Check that the API name is spelled correctly (case-sensitive)

Fields are missing or not appearing

Solution:

  • Some fields may be hidden or have restricted visibility

  • Try fetching fields again (click Configure button)

  • Check Field-Level Security in Salesforce for your user profile

Schema build failed

Solution:

  • Check Debug Logs in the Admin section for detailed error messages

  • Ensure you have at least one field selected for each custom object

  • Verify your JSM Assets workspace connection is active

  • Try building the schema again

Object still appears after removal

Solution:

  • After removing an object, you must click Build/Upgrade Schema to fully remove it from JSM Assets

Best Practices

Do:

  • Test with a small custom object first before importing large objects

  • Select only the fields you need (reduces import time and complexity)

  • Use descriptive field names as labels (e.g., "Invoice Number" instead of "ID")

  • Check Debug Logs after schema builds to verify success

  • Backup your JSM Assets schema before importing large datasets

Don't:

  • Add too many custom objects at once (test one or two first)

  • Select all fields if you only need a few (performance impact)

  • Rename custom objects in Salesforce after importing (causes confusion)

  • Try to import to a schema that already has conflicting object types

FAQ

Q: Can I import managed package custom objects?
A: Yes! Managed package objects use the naming convention NamespaceName__ObjectName__c and are fetched the same way.

Q: What's the limit on custom objects?
A: There's no hard limit in the app, but JSM Assets schemas have practical limits. Start with 5-10 custom objects.

Q: Can I change which fields are imported after the first import?
A: Yes! Reconfigure the object, rebuild the schema, and run another import. New fields will be added to JSM Assets.

Q: Do I need to remove an object to change its label field?
A: No! Just click Configure, change the label, save, and rebuild the schema.

Q: What happens to existing records if I change the label field?
A: Existing records keep their current values. Only new records will use the new label field.

Support

If you encounter issues:

  1. Check Debug Logs in the Admin section for detailed error messages

  2. Review this guide's Troubleshooting section

  3. Verify all connections (Source and Destination) are active

  4. Contact your Salesforce or JSM Assets administrator for permission issues


Note: This feature is currently in Beta. Functionality and UI may change in future releases. Report bugs or feature requests through your support channel.