App Maker Exporting a useful output from Doc Approval Template - google-app-maker

I've used (and customised) an app from the Document Approval Template. I have also found the basic way to export the entered records to google sheets.
They come out as separate sheets, showing all the documents / approvers etc as a list on separate sheets, but what I really need is something that shows the relations i.e. who it was that auth each submitted record (especially with some making use of the two step auth feature of the template)
Any ideas?

I'm happy to announce that App Maker supports associations import/export now.

Related

Updating Wordpress Table after a Google Sheet Update

I am currently looking into helping someone using Wordpress and Google Sheets. Essentially, they use Google Sheets data as a backend and Wordpress will display that as a table in a post.
The only issue is this data is refreshed every five mins by an add-on they are using. However, it would be best if the data was updated real time. I am a full stack developer, but not overly familiar with Word Press, is there a way to 1) get the table data to update in real time? Or 2) have the table data loaded on page refresh, like a typical UI to backend service call would?
You can use the wp_update_post() function or the REST API at any time to update the content of any page, or if the table is stored in an option, use update_option().
Then, it's just a matter of whether you want to scan for changes on the server side, or can send a webhook of some kind when the row is updated.
I can think of a few options.
Set up a Cron Job at the server level to check the google sheet for changes, and use either function above to update the table. I don't really recommend that for this because it won't be "live" updates, and may run more (or less) often than it needs to.
See if the "addon" can post the updated row to the WordPress REST api (or custom function handler)
Use one of the Sheets Triggers (onEdit?) in the sheet's Apps Script to fire a remote request to your site with the updated row's value (or the whole sheet?) and update it via the REST API or custom function handler with wp_update_post or update_option.
Use a third party "webhook tool" to hook the Sheet to your site. A tool like Zapier or IFTTT comes to mind.
I'd probably lean towards number 3 as it lets you tie straight into the Google Sheet with Apps Script, and POST just the updated row to your WordPress' site via the API, which provides the following benefits:
• Updates your site "live", as soon as an update is made to the sheet
• Doesn't require server-side set up
• Low amount of data transmitted over the wire
• No needless checks/requests
• No other third-party tools required

Firebase fan-out structure for news feed

I have a database with posts, users and other nodes like classic social-media app.
I'm continuing implementing best-practices to my application. And now I want to rewrite my news strip (posts of users, that I follow (like home tab in Instagram)).
I have read some info about fan-out strategy and now I'm confused in how to do it properly.
So, I have 2 opportunities:
Like here: Every time user adds new post, this post with full information will be copied to users-timeline(users news strip)/UID/postId: FULL INFO to all followers of this user. And every edit will edit each mention of this post.
Every time user adds new post, this postID will be copied to user-timeline(users news strip)/UID/postId: true to all followers of this user. And every edit will edit only source post.
Which logic is better with Firebase?
I suggest you using David's East solution. As I see in his post, he uses Firebase denormalization and data flatten, which are the best common practices within Firebase.
I also recommend you reading NoSQL Data Modeling Techniques and Structuring your Firebase Data correctly for a Complex App for a better understanding.
If you have a SQL background, I recommend you seeing also David's East tutorial, The Firebase Database For SQL Developers.

Can Firebase Dynamic Links be used to attribute installations to marketing campaigns?

Firebase Dynamic links allows you to set the utm campaign parameters, however I have not been able to find a clear answer if the campaign parameters survive the installation process and are attributed.
We would like to generate our own dynamic links for non-adnetwork campaigns, e.g. posting on facebook, within edm's etc and be able to work out what campaigns are driving the most installations.
For the campaign information to survive, you'll need to utilize the provided fields when constructing your links. Specifically, the "social media tag parameters" look useful in this case.
However, that info isn't going to be captured in analytics as a campaign, necessarily, and you'll either need to coax this data to generate useful reports or import it into BigQuery for more advanced analysis.

Track user's action

In our company I have to extend the functionality of existing Drupal 7 website. Here are the requirements:
The business needs to inform all staff members, on different topics using uploaded to the Drupal site documents. (I already implemented this requirement.)
The business needs to know, which staff members have read a document and which still have not.
They need a report like this:
Document 1 25/50 (25 from 50 staff members still didn't read the file)
Document 2 50/50 (all staff members did read the file), etc.
In order to fulfill the second business requirement, I need a module which can track specific user's activity (in my case click on a link to download a file, which means the file is read). The module(s) have to be able to create a report like the one above.
(All staff members have a drupal account with a specific role.)
Is there any drupal module I can use or maybe a part of it. Or the requirements are too 'custom' and I have to create my own module.
I created almost exactly the feature you need. I would be glad to help you in the process.
I developed indeed a full custom module. And I could tell you that you will need different things:
A custom table in your DB to store the data
A custom entity called "track" or "action" that will be stored in the DB
Implementing the right hooks to create a track when you want to keep a track of a user's action
A custom page or block to display the tracks you stored in your DB with a custom query and appropriated permissions
To achieve all that, I suggest you to take a look at these pieces of documentation:
https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_schema/7
https://www.drupal.org/node/878784
https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7
https://www.drupal.org/node/1343708
http://befused.com/drupal/page-programatically
https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_permission/7
Hope it will help.

Chart CiviCRM CiviPetition results?

We'd like a sort of overview report regarding our petitions in CiviCRM. It would be great to have two pie charts, one showing contacted and signed % and contacted but not signed %, and another pie chart showing the results of our one-question poll (Yes, No, Maybe).
Ideally the charting would be integrated into CiviCRM so we don't need to do custom code to get charts every time we run a poll.
I can't find anything to do this on the CiviCRM forums and my question there is unanswered.
Would this be better done in Drupal Webforms?
This is probably a job for a custom report template. The issue is that you're not just looking at petition signature activities; you're comparing that against being "contacted". CiviCRM won't know off the bat what you mean by that. Is it receiving an email? Having a phone call activity? Having any activity in X campaign?
The custom report template would need to extend the activity report to include contacts who are involved in two activities: being "contacted" and signing the petition. Really, it's not a report of petition signatures--many won't have signed anything--it's a report of being "contacted", so you'll need to be able to filter out what that is (and distinguish these activities from being contacted with a different ask).
You'll need to have the report template make joins from the "contacted" activity to the civicrm_activity_contact table, then to the same table (to find other activities the same contact is involved with), then to the civicrm_activity table again to get the petition signatures. Once you have the basics working there, you can add in columns and filters, and after that, you can give the report a pie chart display.
Once you have all this set up (and it is a bit significant--my shop would charge for 5-10 hours of work), you could use the regular interface to pick which petition and what criteria should be used for identifying those being "contacted". You could have a bunch of saved report instances for that single template, so you wouldn't need to write any new code unless a CiviCRM upgrade interfered with things.
Here's the reference for how to create custom report templates:
http://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Report-Template+Extension

Resources