Skip to content

Shop Data Model

🏗️ Primary Entities

Shops: Physical service locations with address, contact, and operational details

Tenants: Parent organizations that own and manage shops

Integrations: External shop management system mappings

Communication Settings: Text and email sending configuration

🔗 Key Relationships

Many-to-One: Shop → Tenant (each shop belongs to one tenant)

Core identification fields for shop records with internal, external, and tenant system mapping.

Field NameData TypeDescriptionRequired
STEER_TENANT_IDString (UUID)Unique tenant identifier (parent organization)Yes
STEER_TENANT_NAMEStringTenant organization display nameYes
STEER_SHOP_IDString (UUID)Unique shop location identifier (primary key)Yes
STEER_SHOP_NAMEStringShop location display nameYes
EXTERNAL_SHOP_IDStringShop identifier in the external management system (e.g., Tekmetric shop ID)No
SHOP_MANAGEMENT_SYSTEMStringExternal shop management system nameNo
SHOP_PHONEStringShop phone number (e.g., +1 (715) 676-2914)No
SHOP_WEBSITEStringShop website URLNo
SHOP_LOCATION_NUMBERStringLocation number within a multi-location tenantNo
SHOP_TIMEZONEStringShop timezone in IANA format (e.g., US/Central, US/Eastern). Use this to convert UTC timestamps to local timeYes
SHOP_STATUSStringCurrent operational status of the shopYes

Physical location details for the shop with optional geolocation.

Field NameData TypeDescriptionRequired
SHOP_ADDRESS_ONEStringPrimary street addressNo
SHOP_ADDRESS_TWOStringSecondary address line (suite, unit, etc.)No
SHOP_CITYStringCity nameNo
SHOP_STATEStringState or province (format varies: may be abbreviation like WI, CA or full name like Oklahoma)No
SHOP_COUNTRYStringCountry name or code (format varies: may be full name like United States or code like US, CA)No
SHOP_ZIPCODEStringPostal/ZIP codeNo
SHOP_LATITUDENumberShop address latitude coordinateNo
SHOP_LONGITUDENumberShop address longitude coordinateNo

Configuration for SMS/text message sending from this shop.

Field NameData TypeDescriptionRequired
TEXT_SETTING_PHONE_NUMBERStringPhone number used for sending text messagesNo
TEXT_CAMPAIGN_RULE_ENABLEDBooleanWhether text campaign sending rules are activeNo
TEXT_CAMPAIGN_RULE_MAX_COMMUNICATIONS_PER_DAYNumberMaximum text messages a customer can receive per dayNo
TEXT_CAMPAIGN_RULE_UNIQUE_COMMUNICATION_FOR_DAYSNumberMinimum days between repeated text messages to the same customerNo
TEXT_SENDING_HOURS_LIMIT_ALLOWED_FROMStringEarliest allowed time to send texts (e.g., 08:00:00)No
TEXT_SENDING_HOURS_LIMIT_ALLOWED_TOStringLatest allowed time to send texts (e.g., 21:00:00)No
TEXT_SENDING_HOURS_LIMIT_DEFAULT_TIMEStringDefault send time if outside allowed window (e.g., 10:00:00)No

Configuration for email sending from this shop.

Field NameData TypeDescriptionRequired
EMAIL_SETTING_FROM_EMAILStringEmail address used as the “from” address (e.g., shop slug)No
EMAIL_SETTING_FROM_EMAIL_NAMEStringDisplay name used in email “from” fieldNo
EMAIL_CAMPAIGN_RULE_ENABLEDBooleanWhether email campaign sending rules are activeNo
EMAIL_CAMPAIGN_RULE_MAX_COMMUNICATIONS_PER_DAYNumberMaximum emails a customer can receive per dayNo
EMAIL_CAMPAIGN_RULE_UNIQUE_COMMUNICATION_FOR_DAYSNumberMinimum days between repeated emails to the same customerNo
EMAIL_SENDING_HOURS_LIMIT_ALLOWED_FROMStringEarliest allowed time to send emails (e.g., 00:00:00)No
EMAIL_SENDING_HOURS_LIMIT_ALLOWED_TOStringLatest allowed time to send emails (e.g., 1.00:00:00 for end of day)No
EMAIL_SENDING_HOURS_LIMIT_DEFAULT_TIMEStringDefault send time if outside allowed window (e.g., 09:00:00)No

External shop management system synchronization details.

Field NameData TypeDescriptionRequired
INTEGRATION_INITIAL_SYNC_STATUSStringStatus of the initial data synchronization from the management systemNo
INTEGRATION_LAST_FETCH_DATETIMETimestampWhen data was last fetched from the management systemNo
INTEGRATION_LAST_SYNC_DATETIMETimestampWhen data was last synchronized with the management systemNo
Field NameData TypeDescriptionRequired
SHOP_UPDATED_ATTimestampLast modification timestamp for this shop record (UTC)Yes
  • Active: Shop is currently operational and accepting customers
  • Inactive: Shop is no longer operational or has been deactivated

Complete API response example with a shop record:

{
"data": [
[
"f2e3d4c5-b6a7-8901-2345-6789abcdef01",
"Premier Auto - Corporate",
"c3d4e5f6-a7b8-9012-3456-789abcdef012",
"Premier Auto - Downtown",
"12345",
"Tekmetric",
"+1 (212) 555-0123",
null,
null,
"US/Eastern",
"Active",
"123 Main St",
"Suite 4B",
"New York",
"NY",
"United States",
"10001",
40.712776,
-74.005974,
null,
true,
2,
7,
"08:00:00",
"21:00:00",
"10:00:00",
"premier-auto-downtown",
"Premier Auto - Downtown",
true,
3,
7,
"00:00:00",
"1.00:00:00",
"09:00:00",
null,
null,
null,
"2026-03-10T05:00:01.701Z"
]
],
"metadata": {
"rowType": [
{"name": "STEER_TENANT_ID", "type": "text"},
{"name": "STEER_TENANT_NAME", "type": "text"},
{"name": "STEER_SHOP_ID", "type": "text"},
{"name": "STEER_SHOP_NAME", "type": "text"},
{"name": "EXTERNAL_SHOP_ID", "type": "text"},
{"name": "SHOP_MANAGEMENT_SYSTEM", "type": "text"},
{"name": "SHOP_PHONE", "type": "text"},
{"name": "SHOP_WEBSITE", "type": "text"},
{"name": "SHOP_LOCATION_NUMBER", "type": "text"},
{"name": "SHOP_TIMEZONE", "type": "text"},
{"name": "SHOP_STATUS", "type": "text"},
{"name": "SHOP_ADDRESS_ONE", "type": "text"},
{"name": "SHOP_ADDRESS_TWO", "type": "text"},
{"name": "SHOP_CITY", "type": "text"},
{"name": "SHOP_STATE", "type": "text"},
{"name": "SHOP_COUNTRY", "type": "text"},
{"name": "SHOP_ZIPCODE", "type": "text"},
{"name": "SHOP_LATITUDE", "type": "real"},
{"name": "SHOP_LONGITUDE", "type": "real"},
{"name": "TEXT_SETTING_PHONE_NUMBER", "type": "text"},
{"name": "TEXT_CAMPAIGN_RULE_ENABLED", "type": "boolean"},
{"name": "TEXT_CAMPAIGN_RULE_MAX_COMMUNICATIONS_PER_DAY", "type": "fixed"},
{"name": "TEXT_CAMPAIGN_RULE_UNIQUE_COMMUNICATION_FOR_DAYS", "type": "fixed"},
{"name": "TEXT_SENDING_HOURS_LIMIT_ALLOWED_FROM", "type": "text"},
{"name": "TEXT_SENDING_HOURS_LIMIT_ALLOWED_TO", "type": "text"},
{"name": "TEXT_SENDING_HOURS_LIMIT_DEFAULT_TIME", "type": "text"},
{"name": "EMAIL_SETTING_FROM_EMAIL", "type": "text"},
{"name": "EMAIL_SETTING_FROM_EMAIL_NAME", "type": "text"},
{"name": "EMAIL_CAMPAIGN_RULE_ENABLED", "type": "boolean"},
{"name": "EMAIL_CAMPAIGN_RULE_MAX_COMMUNICATIONS_PER_DAY", "type": "fixed"},
{"name": "EMAIL_CAMPAIGN_RULE_UNIQUE_COMMUNICATION_FOR_DAYS", "type": "fixed"},
{"name": "EMAIL_SENDING_HOURS_LIMIT_ALLOWED_FROM", "type": "text"},
{"name": "EMAIL_SENDING_HOURS_LIMIT_ALLOWED_TO", "type": "text"},
{"name": "EMAIL_SENDING_HOURS_LIMIT_DEFAULT_TIME", "type": "text"},
{"name": "INTEGRATION_INITIAL_SYNC_STATUS", "type": "text"},
{"name": "INTEGRATION_LAST_FETCH_DATETIME", "type": "timestamp_ntz"},
{"name": "INTEGRATION_LAST_SYNC_DATETIME", "type": "timestamp_ntz"},
{"name": "SHOP_UPDATED_AT", "type": "timestamp_ntz"}
]
}
}