📈
Knowledge base
  • Getting started (placeholder)
  • Basics
    • Intro (placeholder)
      • "Hello world of PWA!" app
      • Testing the App
      • How to hide / show screen elements
      • Create user actions: switch screens, change data and make API calls
      • Screens
      • Show any platform Data in app ellements
      • Showing Data in app - Filters
      • Loops - display multiple line results in app
      • Automating Business Processes & Funnels via Triggers
      • Send and Receive data via external API integrations
      • Chaining API calls
      • Use MathJS formulas
  • PWAbility
    • PWAbility
      • App distribution
      • Saving Mobsted PWA App
      • Smart Messaging
      • Guaranteed delivery
      • Offline Mode
  • Messengers
    • Intro (placeholder)
      • Set up VK bot
      • Set up Facebook bot
      • Set up Telegram Bot
      • Set up Viber bot
  • Data
    • Import data (placeholder)
    • Export data (placeholder)
  • References
    • Intro(placeholder)
      • Constructor elements to build your app
      • Filter any backend and Object data
      • Manage app users and objects
      • Events
      • Statuses
      • Hashtags
      • Variables
      • Lists (placeholder)
      • User Access
      • API Description (placeholder)
Powered by GitBook
On this page

Was this helpful?

  1. References
  2. Intro(placeholder)

Hashtags

PreviousStatusesNextVariables

Last updated 5 years ago

Was this helpful?

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

Hashtags are used in elements' properties in , API Operations, API Providers, API Methods, and when .

Hashtags can be created manually or automatically via Hashtag generator function in Constructor.

gif добавить

Hashtag generator works for the below parts and functions of the platform:

  • LastEvent (last event created on app user action)

When enetring Hashtags manually make sure the text contains no spaces otherwise they won't work.

____________________________

HASHTAGS USE EXAMPLES

Constructor:

Constructor View

Application User View

API Providers:

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 made in the tennant

  • #Tenant:PrimaryEmail# - email of tenant creator(Client) specified at registration

  • #Tenant:CompanyName# - company name

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 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 or empty if none of these specified

  • #Application:PIN# - if the PIN code is set to log in to app, can be 1=YES or 0=NO

  • #Application:CreateObjects# - auto-create object on accessing app, can be 1=YES or 0=NO

  • #Application:EventNotify1# - type of initial notification: Email=Email, SMS=Text Message, Push=Push or Not Selected if not specified

  • #Application:EventNotify2# - type of second notification:

    Email=Email, SMS=Text Message, Push=Push or Not Selected if not specified

  • #Application:EventNotify3# - type of third notification: Email=Email, SMS=Text Message, Push=Push or Not Selected if not specified

  • #Application:DesktopName# - app name on Mobsted platform

  • #Application:IP# - access security configuration status IP address (used with parameters subnet mask 1 and 2), can be 1=set to on, 0=set to off.

  • #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 in seconds 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:DateCreate# - screen creation date

  • #Screen:LastModified# - the date of last change made to screen

  • #Screen:ishomescreen# - current screen is Home screen = true, not Home screen = false.

Screen hashtags will work for app users, in API operations called by app users and in filter results requested by app user.

доступно на MU и в АПИ операциях, запускаемых с MU, в фильтрах, результаты запрашиваемые на MU

VARIABLES

Variables hashtags work for app users in API operations, API Providers methods and in filter results requested by app user.

доступно на MU и в АПИ операциях, АПИ провайдерах методов, запускаемых с MU, в фильтрах, результаты запрашиваемые на MU

CONSTRUCTOR ELEMENTS BACKENDNAMES

  • 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:Phone# - object phone number

  • #Object:Email# - object email

  • #Object:CreateDate# - object creation date

  • #Object:LastLogin# - last date the app was accessed by the object

  • #Object:InviteStatus# - status of an invite sent to the object

  • #Object:Timezone# - current time zone

  • #Object:AutomaticalTimezone# - set automatic time zone, can be ON=1 or OFF=0

  • #Object:LastModified# - last date when object's data was changed

  • #Object:*anyColumnName*# - reference to any custom column created in Objects

  • #Object:FacebookChannel# - FB bot enabled=1, not enabeld=0

  • #Object:TelegramChannel# - Telegram bot enabled=1, not enabled=0

  • #Object:ViberChannel# - Viber bot enabled=1, not enabled=0

  • #Object:VKChannel# - VK bot enabled=1, not enabled=0

  • #Object:NotifyPush# - Chrome push enabled =1, not enabled =0

  • #Object:NotifyEmail# - Email push enabled =1, not enabled =0

  • #Object:NotifySMS# - SMS push enabled =1, not enabled =0

  • #Object:*anyColumnName123*# - reference to any custom column created in Objects.

FILTER

  • #ObjectsFilter:FilterName: FilterValue# - get data on Objects filter

  • #EventsFilter:FilterName: FilterValue# - get data on Events filter

FilterName is filter's unique name.

In the hashtags above FilterValue can have the following values:

  • Value - filter value

  • Count - number of records that apply to the filter

  • Data - all filter records

  • Value - value for aggregated data (record count, max, min value)

Filter hashtags can use Self modifiers:

  • SelfData

  • SelfValue

  • SelfCount

Self modifiers allows to set additional filtering condtions on specified Object parametrs.

For example: #EventsFilter:FilterName:FilterValue:SelfData:id# will return records applicable to current Object only.

Object column referenced in Self modifier must contain data, otherwise the filter will not work.

Merge Filters

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

  • First filter will contain the required Email condition, we will name it as Email

  • 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")#

Object column for join action must contain some data.

надо сделать пометку, что колонка по которой выполняется join должна содержать значения и не должна быть пустой. можно использовать id объекта или ту колонку по которой уже выполняется фильтрация

LOOPS

Loops hashtags can be created only manually.

  • #ObjectsFilter:FilterName:Data# - creating loop which contains data based on Objects filter

  • #EventsFilter:FilterName:Data# - creating loop which contains data based on Events filter

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:

Также были задачи в джире - сейчас в статусе released

MOB 5292 Добавить хештег

Loop:Name:__index# в котором будет храниться НОМЕР текущего цикла итераций данного лупа.

а) Хештег должен корректно заменяться б) хештег должен присутствовать в генераторе хештегов в) хештег должен быть отражен в документации

MOB 5300

Добавить в Loop хештеги __key, __value при итерировании по Объектам + добавить возможность итерирования по объектам

EVENT

Event hashtags are available in Triggers' operations only.

  • #Event: id# - Event id

  • #Event:Value:*EventFiledName*# - data from specified field in Event Value column

  • #Event:ActionName# - event action name.

LAST EVENT

LastEvent hashtag returns data from last event created on app user action.

LastEvent hashtags are available everywhere except Triggers' operation.

  • #LastEvent:id# - Last Event id

  • #LastEvent:Value:*EventFiledName*# - data from specified field in Event Value column

  • #LastEvent:ActionName# - Last Event action name.

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#

The structure of the received data (after performing the operation) can be checked via Hashtag generator. This requires settings in API method [ссылка на API методы, как напишем API description]

gif как задавать хештеги для проверки операций

________________________

CURRENT PAGE ROUTE

Current page route (URL)

  • #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.

MENTIONED ARTICLES

  • API description

Some hashtags work for app users or for platform users () only. Please, pay attention to relevant notes to the sections below.

Hashtags are used to display data:

#Application:Everytime# - request to enter IP or PIN on user return after time out (), can be 1=YES or 0=NO

#Screen:SortOrder# - sequential screen number created in

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

#Backendname:name# - backendname set for element to reference the data entered by app user

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

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

#Object:PIN# - login PIN if PIN is set in

#Object:LoginUrl# and #Object:InviteUrl# - personal short link to enter the app on behalf of the object. #Object:InviteUrl# is used for to new users

#Object:Enabled# - object Status, if 0 - the object will not be able to access the app (requires to make settings in Enabled column in )

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

Simple filter created on Mobsted PWA platoform

#Operation:OperationName:Response:Result:0:response:holidays# - creating loop which contains data on API Operation (read more about API Operation hashtags in )

Object
Constructor
Variables
Text input
Radio Buttons element
Radio Buttons element
Objects
Objects
Screens
Smart Filters
Events
Constructor elements
Variables
Smart messaging
User Access
Apply loops to screen elements
App distribution
Application
Backendname
Event
Filter
Object
API Operation
Screen
System
Tenant
Variable
API operation section
Constructor
Filters
sending messages to application users
app distribution
Business servicers
Return visitor timeout security setting
user access settings
Venn diagram demonstrating the logic of the filter on Mobsted PWA platform