Zendesk Sunshine
This connector was updated from version 1.2 to 2.0. The new version is built on the Zendesk Custom Objects v2 API (/api/v2), replacing the retired Zendesk Sunshine API (/api/sunshine). This is a breaking change: custom-object and relationship operations were rebuilt, and 13 object-type and relationship-type operations were removed. Review the breaking changes below before updating your workflows.
Overview
Zendesk Sunshine is an open customer relationship platform designed to work with all your business applications. Built on AWS, it takes a modern approach to CRM systems with the goal of creating personalised experiences.
In version 2.0, the connector targets the current Zendesk Custom Objects v2 API. Records are scoped by a custom object key and use predefined, typed fields instead of free-form attributes, and relationships are modelled with a junction custom object rather than a relationship type.
The legacy Zendesk Sunshine (Custom Objects) API is being retired by Zendesk. Version 2.0 migrates the connector to the supported Custom Objects v2 API so existing integrations continue to work after the legacy endpoints are removed.
API Information
The Base URL used for the Zendesk Sunshine connector is https://{subdomain}.zendesk.com/api/v2, where {subdomain} is your Zendesk account subdomain.
More information can be found in the Zendesk Custom Objects API documentation. API rate limiting information is available in the Zendesk rate limits documentation.
Breaking Changes in Version 2.0
Version Summary
The Zendesk Sunshine connector has been migrated from version 1.2 to 2.0. This update includes:
- Base URL:
https://{subdomain}.zendesk.com/api/sunshine→https://{subdomain}.zendesk.com/api/v2 - Data model: Object types with free-form attributes → custom objects identified by a key, with predefined typed fields
- Relationships: Relationship types → a junction custom object joined through lookup relationship fields
- Operations: 13 removed, 7 added (5 operations plus 2 private dropdown helpers), and 7 changed
- Profiles & Events: The 6 Profiles and Events operations are unchanged
Conceptual Model Updates
The Custom Objects v2 API replaces the legacy Sunshine concepts:
| Legacy Sunshine concept | Version 2.0 equivalent |
|---|---|
| Object type | Custom object identified by a key |
Free-form record attributes (attribute_name / attribute_value) | Typed fields set through custom_object_fields (a key/value object keyed by field key) |
| Relationship type | A junction custom object plus lookup relationship fields |
| Relationship record | A record in the junction custom object |
Field keys used in custom_object_fields must already exist on the custom object. Create them first with the Create object field operation (or in Zendesk Admin Centre) before setting their values on a record.
Removed Operations
The following 13 operations have been removed in version 2.0:
create_object_type- Object types are now created withPOST /custom_objectsand fields; no direct connector operationget_object_type- No direct replacementupdate_object_type- No direct replacementdelete_object_type- No direct replacementlist_object_types- Uselist_custom_objectsinsteadcreate_relationship_type- Model the relationship with a lookup field viacreate_object_fieldget_relationship_type- Uselist_object_fieldsto inspect lookup fieldsdelete_relationship_type- No direct replacementlist_relationship_types- Uselist_object_fields(lookup fields)list_related_object_records- Uselist_relationship_records_by_object_recordlist_relationship_records_by_type- Usesearch_object_recordslist_object_records_by_type- Uselist_object_recordsquery_object_records- Usesearch_object_records
Added Operations
Version 2.0 introduces the following operations:
list_custom_objects- Lists all custom objects defined in the account (replaceslist_object_types)list_object_fields- Lists the fields defined on a custom object, optionally including standard fieldscreate_object_field- Creates a field on a custom object; a "Lookup relationship" field type is used to build junction-object lookupslist_object_records- Lists records for a custom object with cursor pagination (replaceslist_object_records_by_type)search_object_records- Searches records by free-text query and/or filter expression (replacesquery_object_records)
Two private dropdown helpers were also added to improve the workflow-builder experience:
list_custom_objects_ddl- Backs the custom-object-key dropdownlist_lookup_fields_ddl- Backs the lookupfield_iddropdown
Changed Operations
The following operations changed their input parameters. Records are now returned as custom_object_record(s) with typed custom_object_fields and cursor meta, rather than the legacy Sunshine record/attributes shape.
get_object_record
- Added
key(required) - Custom object key selecting which object the record belongs to idunchanged (record ID)
create_object_record
- Removed
data.type, replaced by top-levelkey(required) - Removed
data.attributes, replaced bycustom_object_fields(typed key/value object) - Added
name(optional) - Required unless the object has automatic ID generation enabled external_idunchanged (now top-level)
update_object_record
- Added
key(required) - Removed
data.attributes, replaced bycustom_object_fields - Added
name(optional) andexternal_id(optional) idunchanged (record ID)
delete_object_record
- Added
key(required) idunchanged (record ID)
create_relationship_record
- Removed
relationship_type - Removed
source, replaced bysource_field_key(lookup field key on the junction object) andsource_ref(source record reference) - Removed
target, replaced bytarget_field_keyandtarget_ref - Added
junction_key(required) - Key of the junction custom object modelling the relationship - Added
name,external_id, andcustom_object_fields(optional)
delete_relationship_record
- Added
junction_key(required) - Key of the junction custom object the record belongs to idnow refers to the junction record ID (not a legacy relationship-record ID)
list_relationship_records_by_object_record
- Removed
relationship_type,order, andper_page - Removed
id, replaced bytarget_id - Added
target_type(required) - Type of the target record (for examplezen:custom_object:apartment,zen:user,zen:ticket,zen:organization) - Added
source_type(required) - Type of the source records to return - Added
field_id(required) - ID of the lookup relationship field - Cursor pagination replaces offset pagination (
page_sizemax 100,page_after,page_before) - Now returns source records via the Zendesk "Get Sources by Target" endpoint (
custom_object_recordsarray withmetacursors)
Migration Guide
Follow these steps to migrate your workflows to version 2.0:
-
Audit Your Workflows
- Identify all Zendesk Sunshine operations currently in use
- Note which use object types, attributes, or relationship types
-
Map Operation Names
- Use the Removed Operations list to find replacements (for example
list_object_types→list_custom_objects,query_object_records→search_object_records)
- Use the Removed Operations list to find replacements (for example
-
Switch to Keys and Typed Fields
- Replace
data.typewith the custom objectkey(a dropdown is available) - Replace
data.attributeswithcustom_object_fields, using field keys that already exist on the object - Create any missing fields with
create_object_field
- Replace
-
Rebuild Relationships as Junction Objects
- Create a junction custom object with lookup relationship fields (
create_object_field) - Update
create_relationship_recordto supplyjunction_key,source_field_key/source_ref, andtarget_field_key/target_ref - Update reads to use
list_relationship_records_by_object_recordwithtarget_type,target_id,source_type, andfield_id
- Create a junction custom object with lookup relationship fields (
-
Verify Parameters and Pagination
- Add the required
key(orjunction_key) to record operations - Replace
order/per_pagewith cursor pagination (page_size,page_after,page_before)
- Add the required
-
Test in Development
- Build a test workflow with the updated operations
- Verify record and relationship responses use the new
custom_object_record/custom_object_fieldsshape
The 6 Profiles and Events operations are unchanged, and authentication is identical to version 1.2 — no re-authentication is required.
Authentication
The Zendesk Sunshine connector authenticates with your Zendesk subdomain, admin email address, and an API token. Authentication is unchanged from version 1.2, so existing authentications continue to work.
Required credentials
- Subdomain - Found in your Zendesk account URL. For
https://docsdemo.zendesk.com, the subdomain isdocsdemo. - Admin email address - The email address you use to sign in to Zendesk.
- API token - Generated in Zendesk Admin Centre (steps below).
Step 1: Open Admin Centre
From any Zendesk product, open the product switcher in the top-left corner.

Select Admin Centre from the product switcher list.

Step 2: Enable API token access
In Admin Centre, go to Apps and integrations → APIs → API configuration and ensure Allow API token access is enabled. This allows team members to authenticate API requests using their email address and a token.

Step 3: Open the API tokens page
Still in Admin Centre, go to Apps and integrations → APIs → API tokens.

Step 4: Create the API token
Click Add API token, enter a description to identify the token, and click Save. Copy the generated token immediately.

The API token is shown in full only once. Copy and store it securely as soon as it is generated — it cannot be retrieved later, and you will have to create a new one if it is lost.
Configure Authentication in Tray.io
- In your Tray.io workflow, add the Zendesk Sunshine connector
- Click the Auth tab
- Click New Authentication
- Enter authentication details:
- Name: A descriptive name (for example "Zendesk Sunshine Production")
- Subdomain: Your Zendesk subdomain
- Admin email address: Your Zendesk sign-in email
- API token: The token copied in Step 4
- Click Save
Once saved, the authentication is selected automatically in the connector properties panel.
Available Operations
The Zendesk Sunshine connector provides 18 operations against the Custom Objects v2 base URL https://{subdomain}.zendesk.com/api/v2.
Custom Objects
Inspect the custom objects and fields defined in your account.
- list_custom_objects - GET
/custom_objects- Lists all custom objects in the account - list_object_fields - GET
/custom_objects/:key/fields- Lists the fields defined on a custom object - create_object_field - POST
/custom_objects/:key/fields- Creates a field on a custom object (use the "Lookup relationship" type to build junction lookups)
Object Records
Create, read, update, delete, list, and search records for a custom object.
- get_object_record - GET
/custom_objects/:key/records/:id- Retrieves a specific record - create_object_record - POST
/custom_objects/:key/records- Creates a record with typed fields - update_object_record - PATCH
/custom_objects/:key/records/:id- Updates a record - delete_object_record - DELETE
/custom_objects/:key/records/:id- Deletes a record - list_object_records - GET
/custom_objects/:key/records- Lists records with cursor pagination - search_object_records - POST
/custom_objects/:key/records/search- Searches records by query and/or filter
Relationship Records
Model and read relationships through a junction custom object.
- create_relationship_record - POST
/custom_objects/:junction_key/records- Creates a junction record linking a source and target - delete_relationship_record - DELETE
/custom_objects/:junction_key/records/:id- Deletes a junction record - list_relationship_records_by_object_record - GET
/:target_type/:target_id/relationship_fields/:field_id/:source_type- Lists source records related to a target ("Get Sources by Target")
Profiles
Retrieve user profiles. These operations are unchanged from version 1.2.
- get_profile_by_id - GET
/user_profiles/:profile_id- Retrieves a profile by ID - get_profile_by_identifier_query - GET
/user_profiles- Retrieves a profile by identifier query - list_profiles_by_user - GET
/users/:user_id/profiles- Lists the profiles for a user
Events
Create and retrieve profile events. These operations are unchanged from version 1.2.
- create_user_event - POST
/users/:user_id/events- Records an event for a user - list_events_by_profile_id - GET
/user_profiles/:profile_id/events- Lists events for a profile by ID - list_events_by_profile_identifier_query - GET
/user_profiles/events- Lists events for a profile by identifier query
The custom-object-key and lookup-field dropdowns in the workflow builder are populated automatically by private helper operations (list_custom_objects_ddl and list_lookup_fields_ddl). If a dropdown does not load, use list_custom_objects or list_object_fields to look up the value manually.
Use Cases
The Zendesk Sunshine connector enables automation across custom-data workflows:
Custom Object Record Synchronization
Keep custom object records in sync between Zendesk and external systems such as inventory, billing, or product catalogues.
Example workflow: When a record is created or updated in an external database, create or update the matching Zendesk custom object record using create_object_record or update_object_record with the object key and typed custom_object_fields.
Relationship Modelling
Associate records across custom objects using a junction object and lookup fields.
Example workflow: When a support ticket is linked to an asset, create a junction record with create_relationship_record so the asset and ticket are related, then read associated records with list_relationship_records_by_object_record.
Record Search and Enrichment
Look up records by free-text query or filter and enrich them with data from other steps.
Example workflow: Use search_object_records to find records matching an email or reference, then update them with additional context gathered elsewhere in the workflow.
Profile Event Tracking
Record customer activity as profile events and read them back for downstream automation.
Example workflow: When a customer completes an action in another system, call create_user_event to log the event against their Zendesk profile, then use list_events_by_profile_id to build activity timelines.
Available Operations
Please see the Full Operations Reference at the end of this page for complete details on all available operations and their parameters.