NetSuite case ageing notification - case

Below question is related to NetSuite Support Module.
We want to send an email notification to the support rep assigned to the case if the time since last modification of the case has exceeded 48 hours. This notification needs to be sent for each case as soon as it ages over 48 hours since last modification,
I tried a saved search notifiaction, but that does not work as the case which exceeds 48 hours is not a new record.
I am not able to figure out what the trigger would be for a workflow or a script to make this notification work.
Any ideas?
Thanks

Use a workflow
make initiation "Scheduled"
use a condition that the Case is not closed or whatever works for you
under Saved Search set up a search that ids cases older than 48 hours
the saved search will run every half an hour and pick up your aging cases.
To finish this you need to decide if the same case will get another every half an hour until it's been dealt with. If so the workflow can end when the email goes out. If not then the workflow needs to go into some state waiting for the next escalation or waiting for some delay until you can ping the assignee again.

Related

Is there a way to programmatically determine how long a conference room resource has been available for a given time slot?

For example, let's say a conference room was booked for a 12-1pm meeting. At 9am that same morning, a user cancelled that meeting, freeing up the conference room. Is there any way to programmatically run a script which would indicate, if run at 10am, that the room had become available one hour ago?
If you retrieve the event that was cancelled via Events.get, you can get the updated time field as a response, which, in case the event got cancelled, equals the time the event was cancelled. Then, the script can calculate the difference between current time and the time it got cancelled.
You could also use Freebusy to make sure that no one created another event after the previous one got cancelled and that the resource is free for that time.
Update
If you want to know for how long a certain conference room has been free for a certain time, you can:
Get the list of events related to this resource via Events.list, including the ones that were cancelled (set showDeleted to true) to achieve that.
Check if there are any events whose scheduled time matches the time you want to look for (fields start and end).
If any of these events matches, you can calculate, for that event (and in case the event got cancelled and the resource is indeed free - event status is cancelled), the difference between current time and the time the event got cancelled (by checking the field updated).
I hope this is what you wanted.

Updating value of previously sent ecommerce transactions

I am installing ecommerce tracking for a pretty simple ecommerce site. I am tracking the conversion on the order confirmation page, recording the transaction ID and order value, and everything's working fine.
However, sometimes the system issues the customer an offer to make an additional purchase on the order confirmation page with a single click (some small accessories that are discounted). If the customer chooses to make an additional purchase, I would like to be able to update the previously sent conversion. I do not want to assign a new transaction ID, because that will artificially inflate my conversion rate. I have tried sending the new amount of revenue with the same transaction ID, however that does not seem to have consistent results (sometimes ignored, sometimes value is just doubled).
I cannot hold back sending the conversion to GA until the customer makes a decision, because oftentimes the customer simply exits the browser without stating whether he is going to accept or decline the offer - in this case no conversion data would be sent at all.
Any ideas? Is there something in the GA library that I'm missing for this situation? Thanks
Nope, there is nothing. Even if a transaction with the same id goes through it's internally treated as a second transaction w/r/t the conversion rate.
If you want to get really fancy you could try and collect the transaction hit on your own server, wait a few minutes to see if you need to add another product and add a queue time parameter to offset for the actual collection time before you send it to Google. While this would work in theory I am not sure it is really feasible in a production environment (and in any case it would probably be more work than it's worth).

Google Analytics: hits stop getting counted

We're implementing Google Analytics in retail consumer kiosk software. There is no Javascript or SDKs or web pages involved - we craft a URL per Measurement Protocol and post it. We find that sometimes hits seem to just stop getting counted. If we watch the Real-Time section on the GA web site we can see that our hits continue to get posted, but over in the Behavior / Screens section the number of screen views for this device for today stops incrementing.
It's not just a "sometimes you have to wait 24 hours" thing, because Tuesday and Wednesday of last week still show zero today. If it's a rate limit, I can't see what - we're nowhere near 200k hits per day (per user, but from our point of view each kiosk is a user - we don't have any means to identify individual users); we shouldn't be hitting 500 hits per session because we send a session start (ec=Session&sc=Start) each time the user does something on the main menu and a session end (ec=Session&sc=End) each time the workflow finishes, which shouldn't ever be more than 20 screens - the default 'idle timeout' definition of a session wouldn't work well for us since a user can legitimately be working on a single screen for 10 minutes or more editing a picture whereas also a user can finish and leave and the next user in line start using the kiosk within just a few seconds; we shouldn't be sending events 'too fast' because it takes a couple seconds for a human to read the screen and reach out and touch a button.
What we observe is that some days it counts up to 340-360 and stops and some days it stays at 0 permanently. Any idea what's happening and how to fix it?
11/24: Today it went up to 352 and then stopped. This was about one hour of activity. All of this has been done with "Highest precision" selected.
12/1: Still same, counts for about one hour, to 347 screen views today, then stops incrementing.
When I look at Audience/Overview it says "Sessions 1". There should be dozens of sessions, split up by when we send (ec=Session&sc=Start). I think it must not be recognizing that as a session, it must be using the session timeout (idle), and staying all within a single session, and therefore limiting to 500 hits (we've got some events to go along with the screen views). And this is just wrong. Session should end when we say it does.
12/1: One correction, we actually do send sc=start and sc=end, with the values lower-case, as specified by Google.
My coworker did some experimenting and found that sc=start is ignored on t=event hits. It is recognized on t=pageview hits. I changed my reporting a bit to generate a fake pageview when a session starts, just so I could send the sc=start, and now the counts are accurate.

Which Activity to send a warning after X days, then a "You're Late email?

Full explanation. I currently have a Listen Activity with 3 branches. First branch is if the document is returned on time. Second is if after X days has passed the user gets an email warning them not to be late. Third branch is after Y days the document is late and the user gets an email stating that the document is late. The listen activity is within a while loop. Now the way I have it set up, I know that the workflow is going to execute the second branch every X days. I'm not quite sure how to set up the workflow so it execute the second branch, then if the document is still not returned, it will execute the third branch.
Any ideas?
Check out the Windows Server AppFabric / Workflow Services Demo - Contoso HR sample application. It does exactly what you are looking for.
Use a Pick activity as it will only execute one of the branches when its condition is matched and cancel the other branches. You can then use a delay to wait the period of time appropriate for the branch action.

How can i stop two people booking the same appointment time

As the title states, how can i stop two users from booking the same appointment time.
Example, two users logging, on there screen they can both see that a 1pm appointment is available. They both try to book themselves into that appointment time.
How can i stop this from happening and ensure only one user can book it, then refresh the screen to show the next available booking time to the other user.
Thanks.
That's a fairly classic use case. You can simply display the appointment plan at a specific time. That can remain static or you can set up a periodic process (for example, every five seconds) to update the plan with new information.
Then, when the user/operator decides to book a free timeslot, it tries to do an (atomic) update that will fail if someone else has slipped in (using primary key or some other unique constraint). The atomicity of the update operation guarantees that only one person can book the timeslot. If the update works, voila, you have your time booked.
If it fails, notify the user of that fact and then load up the new appointment plan.
Rinse and repeat until the user has their booking or they wander off, disgruntled.
I do not think that this is optimal. Why don't you opt for a first clicked/first served pattern ?
What may happen if you have 10 users or more viewing the same page ? A user viewing a page does not mean that he will click on a time slot. So IMHO wait for a user to REALLY click and then notify eventually other users that a time slot they are viewing has been booked (As it happens with StackOverFlow when somebody answers a question while you are answering)

Resources