Hashtags

Updated 3 weeks ago by Mobsted Support V

Hashtags allow to access or reference the data on and from certain parts of Mobsted platform.

Hashtags are used in elements' properties in Constructor, API Operations, Filters and when sending messages to application users.

WHERE AND WHICH HASHTAGS CAN BE USED ON MOBSTED

You can refer to

Use #References# in

Use exapmles

Constructor:

Hashtags are used to display Object data:

Constructor View

Application User View

API Operations:

Hashtags are used to pass data into API call parameters, for example, #Backendname:city# in the expanse below:

Sending personalized messages to app users:

CURRENT TENANT (MOBSTED ACCOUNT)
  • #Tenant:Name# - tenant name
  • #Tenant:UserName# - name of tenant creator(Client) specified at registration
  • #Tenant:MobileNumber# - phone number of tenant creator(Client) specified at registration
  • #Tenant:Country# - country of tenant creator(Client) specified at registration
  • #Tenant:LastModified# - date of the last change
  • #Tenant:Tariff# - current price plan for platform usage
  • #Tenant:PaidUntil# - next payment due date.
SYSTEM
  • #System:SentSMSCount# - number of SMS sent in the current tenant
  • #System:SentEmailCount# - number of Emails sent in the current tenant
  • #System:SentPushCount# - number of Push notifications sent in the current tenant.

CURRENT USER (SERVICER)
  • #CurrentUser:id#
  • #CurrentUser:Name#
  • #CurrentUser:Email#
  • #CurrentUser:Phone#
  • #CurrentUser:Password#
  • #CurrentUser:Timezone#
  • #CurrentUser:Language#

CURRENT APPLICATION
  • #Application:id# - app unique identifier
  • #Application:Name# - app name when stored on a mobile device
  • #Application:DateCreate# - app creation date and time
  • #Application:ThumbImageUrl# - link to the image used as app icon
  • #Application:EmailPhone# - identification type: Email or Phone Number
  • #Application:PIN# - if the PIN code is set to log in to app, can be YES or NO
  • #Application:CreateObjects# - auto-create object on accessing app, can be YES or NO
  • #Application:Everytime# - request to enter IP or PIN on user return after time out (Return visitor timeout security setting), can be YES or NO
  • #Application:EventNotify1# - type of initial notification: Email, Text Message, Push, or Not Selected. Is used in Notification & Messengers
  • #Application:EventNotify2# - type of second notification: Email, Text Message, Push, or Not Selected. Is used in Notification & Messengers
  • #Application:EventNotify3# - type of third notification: Email, Text Message, Push, or Not Selected. Is used in Notification & Messengers
  • #Application:DesktopName# - app name on Mobsted platform
  • #Application:IP# - access security configuration status IP address (used with parameters subnet mask 1 and 2)
  • #Application:Mask1# - subnet mask 1 (with IP address security setting enabled)
  • #Application:Mask2# - subnet mask 2 (with IP address security setting enabled)
  • #Application:return_visitor_timeout# - time period set before requesting PIN or IP address check with PIN or/and IP address security setting enabled.

CURRENT SCREEN
  • #Screen:id# - screen unique ID
  • #Screen:Name# - screen name
  • #Screen:SortOrder# - sequential screen number created in Constructor
  • #Screen:DateCreate# - screen creation date.

VARIABLES

#variable:myvar1# - value that is stored in "myvar1" variable. For more information on Variables, please, refer to Variables article.

CONSTRUCTOR ELEMENTS BACKENDNAMES
  • #Backendname:textinput# - backendname set for Text input element to reference the data entered by app user

  • #Backendname:radio:label# - label of the option in Radio Buttons element selected by user ("radio" is the Backendname of Radio Buttons element). Example: use #Backendname:radio:0:label# to reference the first radio element label
  • #Backendname:radio:value# - value of the option in Radio Buttons element selected by user ("radio" is the Backendname of Radio Buttons element). Example: use #Backendname:radio:0:value# to reference the first radio element value

  • Checkboxes:
    • Use #Backendname:PolicyAgreeCheckBox[0]:label# to reference the label of the first selected element
    • Use #Backendname:PolicyAgreeCheckBox[0]:value# to reference the value of the first selected element.

CURRENT OBJECT
  • #Object:id# - object unique ID
  • #Object:PIN# - login PIN if PIN is set in user access settings
  • #Object:Phone# - object phone number
  • #Object:Email# - object email
  • #Object:LoginUrl# - personal short link to enter the app on behalf of the object
  • #Object:Enabled# - object Status, if 0 - the object will not be able to access the app (requires to make settings in Enabled column in Objects)
  • #Object:LastLogin# - last date the app was accessed by the object
  • #Object:InviteStatus# - status of an invite sent to the object
  • #Object:HomeScreen# - ID of the start screen
  • #Object:Timezone# - current time zone
  • #Object:AutomaticalTimezone# - set automatic time zone, can be 1 - ON or 0 - OFF
  • #Object:*anyColumnName*# - reference to any custom column created in Objects.

FILTERS
  • #ObjectsFilter:FilterName: FilterValue# - get count on Objects filter
  • #EventsFilter:FilterName: FilterValue# - get count on Events filter
FilterName is the unique name of the filter.

In the hashtags above FilterValue can have the following values:

  • Value - filter value
  • Count - number of entries that apply to the filter
  • PercentChange - percent change
  • Units - measurment units for the filter
  • LastUpdate - filter value update date

SelfId modifiers are allowed for filter hashtags.

SelfId example: #EventsFilter:FilterName: FilterValue:SelfId# Here, the filter will only use the data applicable to current Object.

Merge Filters

The filter can contain either AND or OR. In order to merge OR and AND conditions use hashtags within the new filter.

Example: we created the filter that will display everyone with email on Mobsted OR Outlook domain, and who has US phone number.

Venn diagram demonstrating the logic of the filter on Mobsted PWA platform

  • First filter will contain the required Email condition, we will name it as Email
Simple filter created on Mobsted PWA platoform

  • Second filter will contain the required Phone condition merged with the condition filtering Emails that falls into the first filter
    #ServerSide:ObjectsFilter:Email:Data@join(",", "objects@Email")#

CREATING LOOPS
  • #ObjectsFilter:FilterName:Data# - creating loop which contains data based on Objects filter
  • #EventsFilter:FilterName:Data# - creating loop which contains data based on Events filter
  • #Operation:OperationName:Response:Result:0:response:holidays# - creating loop which contains data on Operation (API call).

Example: creating a loop with Object filter reference.

Referencing Loops:

  • #Loop:LoopName:OperationParameterName# - referencing the repeated element of API Operation that is specified in LoopName
  • #Loop:LoopName:objects@Phone# - referencing Phone column of Objects based on filter that is set in LoopName.

Example: displaying Objects columns which fall under Filter condition.

Application User View:

СURRENT EVENT

Current event is available after running Event trigger:

#CurrentEvent: BackendColumnName#

#CurrentEvent:Value: *DynamicBackendColumnName InTheValueField*#

API OPERATIONS
  • #Operation:OperationName: Response:Code# - HTTP status code after executing the operation
  • #Operation:OperationName: Response:Result[0].value# - data received as response to the operation execution ([0] - this array contains the entire response to the API request. Nesting can be multi-level, nesting levels are separated by a dot OR semicolon
  • #Operation:OperationName: Error:Code# - HTTP status code (in case of error), after performing the operation
  • #Operation:OperationName: Error:Result[0].value# - data received as response to the failed operation execution ([0] - this array contains the entire response to the API request. Nesting can be multi-level, nesting levels are separated by a dot OR semicolon.
OperationName – operation name assigned in the list of operations upon creation.

Example: we ran the operation of checking the weather in the location highlighted yellow and got the following data:

{ 
"meta": [],
"data": {
"Response": {
"Result": [{
"location": {
"name": "London",
"region": "City of London, Greater London",
"country": "United Kingdom",
"lat": 51.520000000000003,
"lon": -0.11,
"tz_id": "Europe\/London",
"localtime_epoch": 1555318097,
"localtime": "2019-04-15 9:48"
},
"current": {
"last_updated_epoch": 1555317913,
"last_updated": "2019-04-15 09:45",
"temp_c": 9,
"temp_f": 48.200000000000003,
"is_day": 1,
"wind_mph": 15,
"wind_kph": 24.100000000000001,
"wind_degree": 90,
"wind_dir": "E",
"pressure_mb": 1023,
}
}, 200, { ... }],
"Code": 200
},
"Error": {
"Result": [],
"Code": 0
}
}
}

Please Note:

  • you can refer to the element of the array by using [array element number]
  • use dots instead of colons to refer to a nested JSON element.

If you want to display the weather, you can set up the following call: #Operation:weatherOperation:Response:Result[0]:current.temp_c#

You can always check the structure of the received data (after performing the operation) in Developer Console of your browser.

#Operation:

GetClientInfoOperation:Response:

Result[0].data.result.

sc_agreement_info.agr_number#

_______

#Operation:

GetClientInfoOperation:Response:

Result[0].data.messages.text#

_______

#Operation:

CancelAllTimeslotsOperation:

Error:Result#

CURRENT PAGE ROUTE

Current page route (URL)

  • #Route:fullPath# - absolute path
  • #Route:path# - relative path
  • #Route:query:appid# - application ID
  • #Route:query:screenid# - screen ID
  • #Route:query:os# - OS the application was launched on (iOS / Android). Will be detected automatically if not specified
  • #Route:query:objid# - current Object ID
  • #Route:query:ref# - referrer. Possible options:
    • ref=PWA - application was launched from Home Screen
    • ref=vcard - application was launched from Contacts 
    • ref=sms
    • ref=email
  • #Route:query:*customParameter*# - custom parameters that can be passed from external systems. Example: paymentSuccess=1.
{
"fullPath": "/?appid=57&screenid=131&os=ios&objid=256870&ref=PWA&result=1",
"path": "/",
"query": {
"appid": "57",
"screenid": "131",
"os": "ios",
"objid": "256870",
"ref": "PWA",
"paymentSuccess": "1"
},
"params": {}
}
}

MENTIONED ARTICLES


Was it useful?