Articles in this section

Understand how data types are inferred

Celigo sync determines the data type for each destination field using source application metadata, destination application requirements, and, when needed, the actual values returned during sync configuration. This article explains that process and the reference table of Celigo data types.

How data types are selected

Celigo sync determines a field's data type in the following priority order:

  1. Source-provided metadata - If the source application exposes field metadata for an object, Celigo sync uses it directly — for example, a field identified as a date, number, Boolean, object, or array maps to the corresponding Celigo data type.
  2. Configured export or object details - If you selected a source object, saved search, or Celigo export, the sync uses whatever field definitions are available from that selection to represent the field in the destination schema.
  3. Values returned from the source - For HTTP-based exports, universal applications, and other sources without strict field metadata, Celigo sync infers the type from sample values. At design time, it evaluates values returned in a preview request; during the sync run, it adjusts the schema based on live data.
  4. Default handling for ambiguous fields - If Celigo sync can't confidently infer a more specific type, it treats the field as a general string-compatible value so the data can still load.

Caution

A field's inferred data type depends on the source metadata and values available at the time. If a later sync run returns values that no longer fit the original type, Celigo sync treats the change as schema drift and applies the schema drift policy configured for the sync, object, export, or field.

Empty and null values

Empty values, blank strings, and null values don't always provide enough information to identify a specific data type. If a field contains only empty or null values when Celigo sync evaluates the source schema, it may assign a default type so the field can be added to the destination schema. When later sync runs return populated values, Celigo sync detects the difference and applies the schema drift policy (see Configure a schema drift policy).

Mixed data types

Some source applications allow the same field to contain different kinds of values across records — for example, a number in one record and text in another. When Celigo sync detects mixed values, it selects a destination-compatible type that preserves the data without causing load errors. A string-compatible type is often the safest choice, since it can store numeric, Boolean, and text values without requiring the field to change type again.

Celigo data types

Data type Description Example
ARRAY An ordered collection of values stored as a single field. Elements are typically of the same or compatible types. ["red", "green", "blue"]
BINARY Raw byte data used for non-text content such as files, images, or encoded values. 0x4A6F686E
BOOLEAN A logical value with two possible states: true or false. TRUE
DATE A calendar date without time-of-day information. 2026-06-22
DATETIMELTZ Date and time interpreted using the session's local time zone, stored in a normalized format. 2026-06-22 14:30:00
DATETIMENTZ Date and time stored without any associated time zone information. 2026-06-22 14:30:00
DATETIMETZ Date and time that includes an explicit time zone or UTC offset. 2026-06-22 14:30:00 -05:00
DECIMAL Fixed-precision numeric type for exact arithmetic, often used for financial values. 12345.67
DEFAULT A generic or inferred type used when a more specific type isn't explicitly assigned. "Sample Value"
DOUBLE Double-precision floating-point number, suitable for scientific or statistical calculations. 3.141592653589793
NUMBER General-purpose numeric type representing whole or fractional values. 98765.4321
INTEGER Whole numbers without decimal places. 42
LONG Integer type optimized for larger whole-number values than a standard integer. 9223372036854775807
OBJECT Structured data containing named attributes or key-value pairs. {"name":"Alice","age":30}
OBJECT ARRAY An ordered collection of structured data types. [{"name":"Alice","age":30},{"name":"Alen","age":35}]
SHORT Integer type for smaller whole-number ranges, typically using less storage than a standard integer. 32767
STRING A sequence of characters used to store text values. "Hello, World!"
TIME Time of day without an associated date or time zone. 14:30:00
VARIANT A flexible type capable of holding values of different underlying types, including semi-structured data. {"orderId":123,"items":["A","B"]}

Note

The DATETIMExTZ type names follow a consistent pattern — DATETIMELTZ (Local), DATETIMENTZ (No time zone), and DATETIMETZ (explicit Time zone) — that maps directly to the equivalent Snowflake types. See Set up a sync to Snowflake for the full data type mapping table.

Learn more