Zendesk Sunshine icon

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/sunshinehttps://{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 conceptVersion 2.0 equivalent
Object typeCustom 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 typeA junction custom object plus lookup relationship fields
Relationship recordA 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 with POST /custom_objects and fields; no direct connector operation
  • get_object_type - No direct replacement
  • update_object_type - No direct replacement
  • delete_object_type - No direct replacement
  • list_object_types - Use list_custom_objects instead
  • create_relationship_type - Model the relationship with a lookup field via create_object_field
  • get_relationship_type - Use list_object_fields to inspect lookup fields
  • delete_relationship_type - No direct replacement
  • list_relationship_types - Use list_object_fields (lookup fields)
  • list_related_object_records - Use list_relationship_records_by_object_record
  • list_relationship_records_by_type - Use search_object_records
  • list_object_records_by_type - Use list_object_records
  • query_object_records - Use search_object_records

Added Operations

Version 2.0 introduces the following operations:

  • list_custom_objects - Lists all custom objects defined in the account (replaces list_object_types)
  • list_object_fields - Lists the fields defined on a custom object, optionally including standard fields
  • create_object_field - Creates a field on a custom object; a "Lookup relationship" field type is used to build junction-object lookups
  • list_object_records - Lists records for a custom object with cursor pagination (replaces list_object_records_by_type)
  • search_object_records - Searches records by free-text query and/or filter expression (replaces query_object_records)

Two private dropdown helpers were also added to improve the workflow-builder experience:

  • list_custom_objects_ddl - Backs the custom-object-key dropdown
  • list_lookup_fields_ddl - Backs the lookup field_id dropdown

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
  • id unchanged (record ID)

create_object_record

  • Removed data.type, replaced by top-level key (required)
  • Removed data.attributes, replaced by custom_object_fields (typed key/value object)
  • Added name (optional) - Required unless the object has automatic ID generation enabled
  • external_id unchanged (now top-level)

update_object_record

  • Added key (required)
  • Removed data.attributes, replaced by custom_object_fields
  • Added name (optional) and external_id (optional)
  • id unchanged (record ID)

delete_object_record

  • Added key (required)
  • id unchanged (record ID)

create_relationship_record

  • Removed relationship_type
  • Removed source, replaced by source_field_key (lookup field key on the junction object) and source_ref (source record reference)
  • Removed target, replaced by target_field_key and target_ref
  • Added junction_key (required) - Key of the junction custom object modelling the relationship
  • Added name, external_id, and custom_object_fields (optional)

delete_relationship_record

  • Added junction_key (required) - Key of the junction custom object the record belongs to
  • id now refers to the junction record ID (not a legacy relationship-record ID)

list_relationship_records_by_object_record

  • Removed relationship_type, order, and per_page
  • Removed id, replaced by target_id
  • Added target_type (required) - Type of the target record (for example zen: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_size max 100, page_after, page_before)
  • Now returns source records via the Zendesk "Get Sources by Target" endpoint (custom_object_records array with meta cursors)

Migration Guide

Follow these steps to migrate your workflows to version 2.0:

  1. Audit Your Workflows

    • Identify all Zendesk Sunshine operations currently in use
    • Note which use object types, attributes, or relationship types
  2. Map Operation Names

    • Use the Removed Operations list to find replacements (for example list_object_typeslist_custom_objects, query_object_recordssearch_object_records)
  3. Switch to Keys and Typed Fields

    • Replace data.type with the custom object key (a dropdown is available)
    • Replace data.attributes with custom_object_fields, using field keys that already exist on the object
    • Create any missing fields with create_object_field
  4. Rebuild Relationships as Junction Objects

    • Create a junction custom object with lookup relationship fields (create_object_field)
    • Update create_relationship_record to supply junction_key, source_field_key / source_ref, and target_field_key / target_ref
    • Update reads to use list_relationship_records_by_object_record with target_type, target_id, source_type, and field_id
  5. Verify Parameters and Pagination

    • Add the required key (or junction_key) to record operations
    • Replace order / per_page with cursor pagination (page_size, page_after, page_before)
  6. Test in Development

    • Build a test workflow with the updated operations
    • Verify record and relationship responses use the new custom_object_record / custom_object_fields shape

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 is docsdemo.
  • 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.

Zendesk product switcher location

Select Admin Centre from the product switcher list.

Selecting Admin Centre from the product switcher

Step 2: Enable API token access

In Admin Centre, go to Apps and integrationsAPIsAPI configuration and ensure Allow API token access is enabled. This allows team members to authenticate API requests using their email address and a token.

Zendesk API configuration with API token access enabled

Step 3: Open the API tokens page

Still in Admin Centre, go to Apps and integrationsAPIsAPI tokens.

Navigating to API tokens in Admin Centre

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.

Add API token page in Zendesk Admin Centre

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

  1. In your Tray.io workflow, add the Zendesk Sunshine connector
  2. Click the Auth tab
  3. Click New Authentication
  4. 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
  5. 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.

Was this page helpful?