Given: As marketers are creating campaigns may originate from different geographic areas, each one may need to input and view campaign data in their own\various timezones.
Given: Jeto currently only works with UTC Time, but users are familiar with using their local times when planning campaigns
Given: Currently multiple fields must be filled by collaborators to input different timezones.
Give: Auto Launch requires that the admin calculates the offset based on GMT which is a bit tricky.
Acceptance Criteria
….When: Creating the Launcher Form
….Then under the “Time” field properties
A toggle (on-off) is added added for a “Timezone” option)
When that toggle is turned on, a new “Jeto System Token” field is created with Token Name “Associated Time Field Name”-Timezone
Ex: if associated Time fields = “Webinar Start Time” TZ token name =”Webinar Start Time-Timezone”
When turned off this field is removed from Launcher Form.
The property Timezone is turned “ON” by default on newly added fields but remains turned off on all existing form fields
Backward compatibility:
Update validation to confirm that Marketo token name is unique on save draft/submit
Acceptance Criteria
…When: Editing a Jeto campaign or campaign draft and Timezone property is enabled on a Time field
….Then
Research and Implement the new timezone widget (Ex: Tailwind CSS Timepicker https://flowbite.com/docs/forms/timepicker/#timepicker-with-select). Properties must include:
User can enter each element time in 12 hr format as HH:MM AM\PM
User can either type the time on keyboard or click a “clock” icon to “select” from a searchable picklist. Search is applied across all elements (accronym, offset, geo).
The dropdown list shows timezones as follow: “Offset - TZ - (Locale)” - see below (THIS IS SLIGHTLY DIFFERENT FROM TAILWIND CSS DEMO)
On load of the campaign Form, we detect if the time field has an associated TZ Activated and, it it does, display the TZ element in the new timezone widget:
If the field has been saved previously, the time field loads with the associated timezone that was last saved.
If no value has been saved previously the local of the user browser is detected and user to set the timezone fields to the matching TZ as default value.
UX:
See Mockup: https://app.moqups.com/K82o1m2jGO/edit/page/adaa32568
Picker works across devices (Tablet, Mobile and Desktop)
…When: Submitting (Create/Update) a Jeto Campaign
Acceptance Criteria
….Then
The value we push in Marketo for the TZ token is the same as the one that is selected in form the user in the picklist values. (Offset - TZ (Geography) Ex:
The Timezone System fields are pushed on campaign create and update like all other fields with the NC “Time Field Name”-Timezone
Given Some clients will have dependencies to External Systems (Jeto Connect or else) where Timezone needs to be taken into consideration.
Then:
Acceptance Criteria
The Offset Value Associated with the Timezone will create a Jeto System Fields System named “Time Field Name”+Timezone-Offset
Value will be passed to the Token in the following Format that aligns with ISO Standards. +\- HH:MM.
Therefore It ill be possible to combine 3 field values from Date, Time and timezone to recompose ISO 8601 Standard time stamp. Ex: For a Time entered in EST (GMT-05:00):
{{my.Send-Date}}T{{my.Send-Time}}00{{my.Send-Time-Timezone-Offset}} => 2024-10-01T12:16:40:00-0500
Given: Some clients will have dependencies to Agical (See help File) https://help.jeto.io/en/articles/2519679-can-i-use-ical-tokens-with-jeto
Then:
Acceptance Criteria
The Offset Value Associated with the Timezone will create a Jeto System Fields System named “Time Field Name”+Timezone-Offset-URL-Encoded
Value will be passed to the Token in the following Format that aligns with Iso Standards (2016-05-26T15:00:00-04:00) where Offset is “- +\- HH:MM”.
The Value will Be URL Encoded, ex: . If timezone is a positive offset. 12:34:56%2B04:00, not 12:34:56+04:00 (literal plus signs have special meaning).
Embedding this Token in place of the “my.UTCOffset” as described in this acticle follow should allow to create Add to calendar links in Outlook and Google
…When: Campaign is submitted and Campaign Launch is configured for Schedule/Activate/Deactivate
….Then
Jeto Scheduler Will now take into consideration Timeszone value entered in corresponding Date field andconvert the date\time for the Jeto scheduler to the quivalent UTC date-time value, so that the campaign is actived/scheduled
Consider TZ can be null if parameter is not enabeld on field - in this case it’s ignored/not converted -
Note:Components CampaignBriefBatchService::buildCampaignBatchSchedule
Acceptance Criteria
On clone of campaign, the TZ values are cloned for each time field in new campaign from the original campaign.
Control time and timezones format output in Marketo Tokens
12 HRS, Ex: 10:00PM (Current)
24 HRS, Ex: 22:00 (New)
Add more options for admin controls of Timezone entry:
There should be an option select fixed or “user defined” in this parameter so that it is not set in advance
If user defined is selected, the admin should have the ability to set a default timezone that will be set on form load by default
There should be an option for Admin select a “display option”. to chose the output of the time to be as follow:
Timezone can be combined by selecting these 3 elements
Abbreviation
UTC Offset
Region
Once user sets - allow to Save As personal default.
Administrator to set a Group default timezone that is the default option.
Allow admin “Lock” timezone to the default
Jeto should have a separate fields that contains all Date/Time/Timezone Elements into a single input field.
Timezones Java: https://docs.oracle.com/middleware/1221/wcs/tag-ref/MISC/TimeZones.html
Timezones https://www.iana.org/time-zones
Time Picker https://flowbite.com/docs/forms/timepicker/#timepicker-with-select
Here are the most common use cases for the time field from our clients. Please let us know if you have a different use case.
Use case 1
Uses time value to send an Agical calendar invitation to people registering for an event.
Use case 2
Surfaces time value in emails for upcoming events as content.
Use case 3
Uses time value to schedule email sends as part of the Campaign Launch feature.
Use case 4
Passes time value to Marketo or other integrated tool to communicate email send time to MarkOps team / Jeto Admin.
If you would like to discuss or provide feedback pls book a time here: https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ1C35qVegE519Aybjp-V2MEuUE6OIYu5f4mjajTrxxxlw5mrHE8fAh8Ghv2NI4hOnvpD4_ZuQMh
This idea has been update with a full specification for a MVP scope.
Please chime and and help us validate that it will meet your requirements!
@David
Yes, that looks great! This will be for "add to calendar" scripts, so the plain text fields will continue to be leveraged in assets as there are too many formats to cover due to preferences and localization.
Thanks @Cat for passing this request.
Here is a first draft of what we envision for supporting entry and output of multiple date/time formats and timezones in Jeto Campaigns. Do you think this would cover for use cases you've encountered? Looking forward to getting some feedback.
User Story:
Requirement (I want to…):Allow user to enter time and date on a single timezones, yet allow to communicate the date/time in a different localized date/time.
Expected Result (So that I can…): Send Global Event/Webinar times and dates that will match the local timezone of each audiences.
Benefit (And enjoy….):
- Same time, reduce errors: by avoid the collaborator from having to input multiple timezone entries in Jeto form. Avoid Administrators the need to convert date/time entries in various timezones manually. Automate the output of multiple date elements manually to build standard ISO date format outputs. Be compatible with calendar link date elements used in URLs.
- Increase engagement: sending webinar and event date in the recipient's timezone and localized date format.
Acceptance Criteria
Jeto to offer a new field for "Date-Time" that combines both date & time entry into a single value, so that it can be later "converted" into various date-time formats and across timezones.
For Jeto Launchers (Administrators)
Launcher field property allows Admin to set default timezone that will be applied as the campaign input form is loaded.
Time output format would include ISO ISO 8601 as default format. i.e.:
Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) where:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
TZD = time zone designator (Z or +hh:mm or -hh:mm)
Folowing items would NOT be included in date-time format
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
Time output format would also allow additional output formats (optional) includes
Date+time (Common formats (TO BE COMPLETED)
Date only (Common formats TO BE COMPLETED)
Time only (Common formats TO BE COMPLETED)
Date + Time as URL encoded (compatible with calendar link tools such as Agical)
The time output formats and timezone can allows to select multiple formats and multiple timezones.
Jeto will push 1 token and corresponding for each combination of format and timezone selected.
For Jeto Campaigns (Marketers)
Campaign form field allow the marketer to select timezone entry (ex: via single select pick-list).
Resource:
ISO 8601 Date Time Standard formats.
https://www.iso.org/iso-8601-date-and-time-format.html
ISO 8601-1:2019 Date and time — Representations for information interchange — Part 1: Basic rules
ISO 8601-1:2019/AWI AMD 1 Date and time — Representations for information interchange — Part 1: Basic rules — Amendment 1
ISO 8601-2:2019 Date and time — Representations for information interchange — Part 2: Extensions