redmine: sending alert if user does not enter hours - email

So we have this distributed team who are working on a project and whose hours/progress is being monitored using redmine. All the guys are really talented and hardworking but pretty bad when it comes to updating their daily tasks/progress using redmine. This makes it very difficult for our project managers to understand and steer the progress as well as the upper management to get a quick overview of where we stand with various development initiatives.
Things have become so bad that I have been tasked to setup an email alert such that every night say 12:00 midnight, an email goes out to everyone on an email list with the date and names of users who have not updated their hours for that day. The management hopes that this exercise will instil in them the discipline to update their tickets on a daily basis.
My question is: Is this possible in redmine? Any API, or adhoc way of send out emails based on a custom Query? I have not worked with redmine before and have no idea how to go about this.
If there are anyone with prior experience I would be very grateful to get some directions!

I send some daily reminders to our redmine users, to help ensure that issues don't slip through the cracks in our workflow. I skip the API and just write perl scripts that connect directly to the database, scheduled via cron. The database is well designed and easy to understand: my SQL skills are very basic, and I've always been able to pretty easily hack out a query that gets what I need.
Some thoughts:
The end of "today" might be a relative concept if your team is worldwide. You could run your script hourly and base the reminders on users' time zones.
You might want to handle holidays and vacations, so that your users don't get nagged on their days off.
We use custom roles in redmine to control some of the emails. (We have a "new issue watcher" who gets triage mails in each project.) You could do the same thing to let certain users opt in or out of the time-tracking nag mails.
If you're interested, here's a link to one of my reminder scripts:
http://joecullin.com/redmine_scripts/redmine_reminders

Related

Is it possible to install Windows Updates on multiple, remote servers through Powershell?

I am a network admin with very little experience coding or using Powershell. About once a month I have to check for and install Windows updates on about 25 servers. I've played around with Powershell in hopes of handling this task in a more automated fashion but get hung up getting the servers to actually install the updates after checking. I apologize for posting such a noob question, but can anyone let me know if this is possible and if so, show me the ways of your dark arts?
WSUS will require you to install the components and setup the profiles etc. If you have a large number of servers on a single network, that is your best bet for delivering the content.
If you just want to be able to schedule and run the updates on specific remote hosts, there is a ton of stuff already available that will do this and you just need to come up with your implementation of scheduling the updates for what hosts. I did this exact thing for a prior employer for 10k plus servers world wide using a web app for the owners to schedule the updates and then back end workflow to perform the approval requests, installs, logging, etc..
PowerShell Gallery is a good start. Here is a post that walks you through using PSWindowsUpdate.

Flutter app: simple way to remember a user to do something

I have a cool flutter app which is used to track staff attendance. A user can check-in and check out when they start/stop working and the app record that event, calculate the number of hours worked and send a weekly summary to the manager of the staff expected wages. The current problem is that some staff members forget to check out (everyone is ok with check-in) so we don’t have good numbers and we need to manually change the attendance. I would like to add something to remember them to check out, and I am looking for creative ideas to do so. My objective is to make something very affordable.
So far I thought about two options:
to use geolocation and track when staff get in/out of a certain location and log it as check-in and check out
to set a timer when they start the shift and send a local notification if after xx hours they have not done the checkout
Geolocation seems to be the best because I can even automate the checkin/check out and do it in the backend but it will consme lots of resources in the client because I would need to check their location every while even when their at at home or on holiday...
The timer has some limits and still, I would need to manage background tasks that are complex as well as imprecise checkout depengin on when the notification goes out.
Do you have any suggestions on anything simple to implement?
I would suggest the second option.
A simple scheduler which would look for all the employees who are checked in for more than x number of hours and then throw a clickable notification to checkout. It would be an easy and clean solution. However, it has several limitations as an employee might leave early but checkout later.
In my opinion, Your most clean solution would be to have an RFID/NFC check which automatically registers as a user checks out from the building.
Another thing that can be done if your employees are working mostly on their computers. There can be a browser extension or a web app which will clock in the time they are working on their laptops. Once they close it they will be automatically checked out.

How can I search for past sent emails with Sendgrid?

As Sendgrid's documentation makes clear, their web GUI activity page is only searchable for the past 7 days.
How do I search for activity from farther in the past?
Web API documentation is here, but I can't find anything about just plain searching for info on sent emails. All I see are endpoints for seeing particular categories of emails' various fates, like blocks, bounces, invalid emails, and "filters", which seem like actions and not like filters.
It's got to be possible to just find info about some particular sent email, right?
It's not possible. As you noted, the documentation clearly states that:
Email activity only shows the most recent 7 days. To access data in
real time, we recommend that you consider implementing our Event
Webhook.
If you want to record all the history associated with your account you should record and save it yourself. You can record all the emails you send provided you have an endpoint to do so. See here: https://sendgrid.com/docs/User_Guide/Settings/parse.html
Later Edit:
"real time" means "as it happens", it does not mean "history searchable at any point in time".
When you use an API, as a developer, the responsibility to log all API calls and responses lies with you. While it's true that bounces aren't necessarily reported in the API call response, the SendGrid API offers several ways in which you can be notified. Personal opinion: I know this functionality is often omitted in the MVP because you need to go to market as soon as possible, but an ELK stack is not that hard to set up.
There are several ways you can look for bounces and other events as you can see here: https://sendgrid.com/docs/Classroom/Track/Bounces/bounce_reports_how_can_i_be_notified.html
Webhook for events: http://sendgrid.com/docs/API_Reference/Webhooks/event.html
Enabling Bounce Forwarding on your account
Bounce API: https://sendgrid.com/docs/API_Reference/Web_API_v3/bounces.html
If you really need to find out what happened on day X with email send Y, you can contact their Support team. They can probably look it up for you.
Personal opinion:
That 7 days is not a random number. I'm willing to bet that SendGrid does in fact log all calls you made but it can't provide them for an earlier time. When you use Facebook API, Twitter API, etc. You don't expect them to provide you with historical data of every API call you made. This is an ungodly amount of data. We're talking about an API that is used to send probably upwards of millions of emails per day, maybe even more. I believe they actually did the math and recalling historical data from earlier would put an unnecessary strain on the system, it would take a long time to answer such a request.
I'm sorry if I went on a bit of a rant but people often don't think about the volume of data needed to store such things and how much it would cost to search it.

Powershell - Add mailbox account to Outlook

I have googled tons for this but with no success, maybe I just have the wrong approach?
Problem:
We work with migrating organizations from on premises Exchange to Office 365 and vice versa. As a service we also log in to all user computers and do the initial "add existing mailbox"-steps. Since we are using Autodiscovery-pointers this takes a lot of time. With a bad bandwidth it can take up to 15 min per user.
Our goal:
Create a Powershelscript where we can put the settings that normally being fetched by Autodiscovery and quickly add a new, existing mailbox to the computer so next time they log in they can just start the Outlook application and they are logged in.
I hope I made myself understandable, please ask if anything is unclear.
Thanks in advance!
Edit:
Maybe there is a way to go through the initial Outlook-setup via a PSSession? Then the time that an Autodiscovery takes wouldn't matter since we can do all the setups remote, unatended.

Send email each month based on values in CRM 3

My company is using Microsoft Dynamics CRM 3, and I'm having some trouble setting up an automatic email. My manager wants to have it setup so that if we bill our customer on the 15th of the month, we send an email out on the 14th, and if it's on the 1st, we send one out the 30th/31st, etc. etc.
I've come across a few helpful things, but my issue is I don't have access to the actual code for the CRM - if it's the only way, it's the only way, but for now I've been trying to setup workflows, but those can only be ran manually - it wouldn't be a MAJOR issue, but then we would have to choose the people to email it to every month, etc etc. I also tried a marketing list, but that doesn't let me send out emails, unless it's through a quick campaign.
Does anyone know of a built in way in CRM 3 to setup automatic emailing each month to a group of customers with a similar value in a particular textbox?
Ok, I had done this sometime ago, you're right, there is not such "scheduled workflow" in CRM 4, but you can simulate this behavior using two workflows, one calling another when the former times out as condition. The first time you have to invoke it manually. Give me some time to find the virtual machine where this project is hosted for more details.