This commit is contained in:
2022-03-06 18:33:16 +00:00
parent 5eab2c43bd
commit e66ec9b55f

View File

@@ -0,0 +1,191 @@
# Customer notification subscriptions
This form is used to create Customer notification subscriptions which are notifications set up on behalf of Customers who do not have their own [Customer access](adm-global-settings.md#customer-access-settings) [login account]() to send notification event notices by email.
For example you may want to send an automatic email to a Customer when their service appointment is about to happen or send a work order report to them when the work order has been completed.
## When you may not want to use this feature
There are two separate ways that your Customers can receive notices via email about important events that occur in AyaNova that may be of interest to them: Allowing them to create their own notifications and view their own data by creating a [Customer access](adm-global-settings.md#customer-access-settings) login account or by using this Customer notification susbcription feature.
When you use this customer notification subscription feature you are setting up notification for the Customer _on their behalf_. In other words they are not directly making the choice of what notices they receive or how they receive them. This can have implications depending on the various rules and regulations that are in place for your jurisdiction.
You need to be aware of the implications of using this feature to send emails to customers and you should take care to be certain they have requested notifications and also take care to turn it off immediately for any Customer that requests that you do so to avoid repercussions with your email provider or others.
On the other hand if you enable Customers to set up their _own_ notifications via a Customer login account, then they are in control and can choose what they get and how they get it. In addition there are numerous other features available to them including the ability to request service from within AyaNova that you may find helpful.
We realize not every site can or will want to set up external access for their customers to AyaNova so we provide this feature but we strongly recommend going the Customer self subscribed notifications route instead wherever possible.
000000000000000000000000000000000000000000000000000000000000000000000000000
## Authorization Roles required
Notification subscriptions are available to _all_ users of AyaNova regardless of their [roles](ay-biz-admin-roles.md) however some types of subscriptions are not available to all roles.
For example, if a user has no rights to Service Work orders then they will not be able to receive notifications about changes to Work order objects.
## How notification subscriptions work
Notification subscriptions are stored in a database table at the server and the AyaNova server checks this table each time a notifiable event takes place and processes a notification for any active subscribers to that event and any filtered (tag) settings that match.
For example if a User subscribes to be notified when a Customer is modified then AyaNova checks for any subscribers to that event when the Customer record is saved to the server.
If the notification is selected to deliver in app to the AyaNova web app [notifications form](home-notifications.md) then it is placed in a table to wait for pick up by the AyaNova web application.
If a notification is set to be delivered via email then it is placed in an email notification delivery queue and processed in turn by the server.
## Notification subscription list
The list form shows all the notifications you are currently subscribed to. You can open a subscription to edit it by clicking anywhere on the row.
## Notification subscription edit form
Not all fields listed below are available for all event types, depending on the event type selected you will see different form fields as appropriate to that event.
### Notification event
This is where you select the type of event you are subscribing to. All event types available are listed in the table below.
### Type
Some events are related to core AyaNova business object operations, for example when an object is created or deleted or modified. This is the field where you select the type of object you are interested in such as a Customer or Work order etc. All core AyaNova business object types are available here.
### Notify before event
For age and time based events, this is where you set a time duration of how far in advance of the event date you want to be notified.
For example if you are creating a subscription for when a service contract expires and you want to be notified 2 weeks in advance of the expiration date you would select 14 days here. You can select days hours and minutes as appropriate.
Remember, this setting controls when you are notified _in advance_ of the actual date of the event whatever that might be.
As you can subscribe to the same event more than once you can use this feature to create an escalating notification system for some events by setting a longer advance notice and having it deliver to a less immediate location.
For example In application first and then another identical subscription but with a shorter time frame to a more immediately noticeable location such as direct SMS or an alternate address to another user to catch critical events in case they might get missed.
### Status
Events tied to Status settings on other objects such as a Workorder status or Quote status require a selection of the desired status. In those cases a Status field is available to choose the exact status of interest.
### Decimal value
Some events are related to monetary or other numeric amounts or thresholds, for example a workorder total price exceeded or meter count exceeded, this field will be presented in those cases to enter the numeric amount appropriate for the event notification.
### Report
In the case of an event that can have a report associated with it, you can select a report link to be automatically sent with the event so the report can be opened from the message.
### Delivery method
Currently you can choose between _Deliver in application_ or _Deliver to email address_ (SMTP internet email) delivery.
In app will deliver to the AyaNova [in-app notifications](home-notifications.md) form and alert via the bell icon at the top of the AyaNova application window.
SMTP / email delivery will send notifications to an SMTP server however this form of delivery is not just for email alone as it can work with many different communications methods including 3rd party communication platforms and SMS / MMS via email gateways (see below).
AyaNova SMTP (email delivery) notification messages are intentionally designed to be as short as possible, plain text with simple links where necessary and to the point so they work well with 3rd party services and small devices.
#### SMS / Text delivery
Delivery via SMS / Text message is supported through email delivery as nearly all cellular providers have a special "gateway" address that can be used for email to text deliveries.
For example, in the US AT&T customers can use the address ##########@txt.att.net substituting the ### symbols for their cellular phone number.
Wiki How has an overview: [SMS / MMS gateway](https://www.wikihow.com/Send-a-Text-from-Email) for how this works and the web site [https://smsemailgateway.com/](https://smsemailgateway.com/) hosts a public domain list of many global cellular providers and their email to text gateway accounts.
Most providers also list this information on their web sites, look for the terms SMS Email Gateway address or contact them directly to get the address.
#### Charges may apply
Depending on your mobile / cellular data plan charges may apply for receiving notification texts, check with your provider.
#### Slack and other communication services
Many communication services support an SMTP gateway that can work with AyaNova's notification system; for example Slack supports sending emails to Slack in [several ways](https://slack.com/help/articles/206819278-Send-emails-to-Slack).
#### Duplicate subscriptions for different delivery methods
Users can create any number of duplicate notification subscriptions with different delivery methods for more complex scenarios such as a dedicated Slack email address, Gmail address, SMS text delivery to a smart phone, in app etc etc. In this way you can be notified in multiple ways at once for critical notifications.
### Deliver to Address
If SMTP / email delivery method is chosen this field is where you enter the address where the notification is delivered.
By default AyaNova will fill this field in with your email address if it's set in your [User settings](home-user-settings.md) form however you can change it to any value you wish.
### Tags
Here you can _filter_ by selecting one or more [Tags](ay-start-form-tags.md) (if the event is related to a taggable object) to include or exclude specific objects.
For example, you could create a subscription to the Object Created event, select the type as Customer and the Tag as "residential". That way any Customer created and saved with the Tag "residential" will trigger a notification to you but if a Customer is created without the tag "residential" you will not be alerted.
**All** the tags selected in the subscription are required to be on the object at the moment it is saved / updated / deleted in order to match the subscription requirements and trigger notification. If other tags are on the object besides the ones related to this filter they have no effect on the notification filter.
If no tags are selected then tags are not considered at all when processing notifications.
#### Work orders / Quotes / PM and tags
Most work order descendant object notifications will use the Work order header tags for comparison with their notification setting with the exception of descendants that have their own Tags (Work order items and Work order item Units are currently the only descendants with their own tags).
For all other descendants, they will process notifications and filter by tag against the work order header tags in place at the moment they are saved after creation or update _only_.
Changing the work order header tags on an existing work order does not automatically trigger a re-evaluation of descendant notification items. Only when those descendants themselves are edited and saved will the tags be re-assessed. This means that ideally tags should be set _first_ on the work order before any descendant items that might be dependant on certain tags being present.
## Notification events are triggered when...
### Business object edited
When a new or updated AyaNova core business object is saved or deleted it triggers notification processing.
In other words if you create a new subscription, only objects saved _after_ you created that subscription will trigger notifications to you.
In the case of time delayed notifications they are still created at the moment of saving the object but with a delayed delivery date.
For example, if you create a subscription to be notified a year after a Customer record is created, the event is created the moment the Customer is created and first saved and stored internally for a year before delivery.
(If that Customer should be deleted before the year is up then that age notification will automatically be deleted)
### Something happens at the server
When an event takes place at the server that triggers events related to server operations. For example when the system backs up automatically.
## General notification type
The General notification type is a special case, all users are automatically subscribed to In Application delivery of general notifications meaning they will always receive critical system notifications as well as direct notifications from other users **inside the AyaNova application**.
There are no settings adjustable for in-app General notifications, they are built in, however it is possible to create another general notification with email delivery.
## Notification event types
The following table shows the types of notification events currently available for subscription.
| EVENT | DESCRIPTION |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Object deleted | Deletion of core business object of selected type and tags |
| Object created | Creation of core business object of selected type and tags |
| Object modified | Any changes and saving of core business object of selected type and tags |
| Work order status change | Any _change_ of Workorder Status including from no status (new) to a _specific_ selected status ID value |
| Contract expiring | Contract expiration |
| CSR accepted | Customer service request accepted. (intended for Customer users) |
| CSR rejected | Customer service request rejected. (intended for Customer users) |
| Quote status change | Any _change_ of Quote Status including from no status (new) to a _specific_ selected status ID value |
| Object age | Any object, Age (conditional on AgeValue) after creation event of any object of selected specific type and optionally selected tags |
| Reminder imminent | A Reminder is about to reach it's specified start date/time |
| Review imminent | A Review is about to reach it's specified review date/time |
| Scheduled on work order | User is scheduled on (added to) a Work order |
| Scheduled on work order imminent | Scheduled date and time reached for workorder which User is scheduled |
| Work order completed status overdue | Workorder not set to a "Completed" type Status before the selected duration from created date |
| Work order completed | Service work order is set to any status that is flagged as a "Completed" type of status. (Customer / HeadOffice or staff User notification) |
| Outside service overdue | Unit sent for 3rd party service is overdue |
| Outside service received | Unit sent for 3rd party service has been received back |
| Part request received | Part requested via a Workorder has been received |
| Notify health check | Automatic daily "ping" notification to confirm notification and Generator system is active at server |
| Backup status | Result of last automated backup |
| Customer service reminder | Scheduled service date / time is about to be reached. (Customer or HeadOffice type users only) |
| Work order total exceeds threshold | The balance of a Work order has exceeded a threshold and is set to completed status (the "Andy") |
| Workorder status age | A Workorder has been sitting at the selected status for longer than the selected time frame |
| Unit warranty expiry | A Unit's warranty expiration date is reached |
| Unit meter reading multiple exceeded | A meter reading entry has a difference from the last reading by the selected amount (negative OR positive to cover count _down_ meters or rollover / reset meters, can tag filter by Unit tag) |
| General notification | Any general notification including direct text notifications between users (built in but provided for email alternative delivery) |
| Server operations problem | Any timely and serious issue related to internal AyaNova Server operations requiring attention |
| Quote status age | A Quote has been sitting at the selected status for longer than the selected time frame |
| Copy of customer notification | Copy of any notification sent to Customer for AyaNova User. Filterable by Customer Tag |
| Work order created for customer | Customer notification sent when a service type work order is created for them (or if HeadOffice Contact user, one of their Customers) |