Quantcast
Channel: Finance and Accounting
Viewing all 48 articles
Browse latest View live

CiviCRM Pivot Report

$
0
0

Aloha, everyone! As you all know, CiviCRM is shipped with a lot of useful report templates for each CiviCRM entities. You can use these templates to create difference report instances to interrogate your data.

However, if you are report geeks like us, you might sometimes find that the existing templates don’t quite give you the flexibility you need. There is the excellent extended reports extension which you should definitely check out here; but if you are trying to do something a bit more complex; or looking for a graphical output then your may still be exporting your data into Excel or Google sheets to do more analysis…

The CiviCRM Pivot Report extension intends to change all that by providing a powerful pivot table functionality, directly within the CiviCRM interface!

You can download it now from the CiviCRM extension directory and it is also available for instant install by your usual methods within the extension “Add New” tab in your CiviCRM admin menu.

*For those who are a little bit more numbers oriented, you may be familiar with the concept of “Pivot tables” from spreadsheet applications like Microsoft Excel, Libre Office or Google Sheets.

Overview

For those who are familiar with the Activity Pivot Report extension we released in early 2016, this extension has everything Activity Pivot Report extension has and much more.

CiviCRM Pivot Report uses a d3 based pivot table library to provide users a highly flexible drag'n'drop UI which enables them to structure the x and y dimensions of a report for most (we’re still waiting on a few!) major CiviCRM entities. Report data can be filtered via any data field and can be counted/ calculated in different ways.

Whats more, the pivot reports can be transformed to different charts or exported as CSV/ TSV files.

Supported entities and data

CiviCRM Pivot Report supports all following entities and they can be found from the top CiviCRM menu Reports -> Pivot Report.

  • Activity

  • Case

  • Contribution

  • Membership

  • Prospect (if the CiviCRM Prospect Extension is installed - more details on that shortly!)

CiviCRM Pivot Report will work with any of the main data fields for an entity (including any custom fields that you have added!).

Building a report

Let's take the example of building a report based on contribution data.

To do so you navigate to Reports -> Pivot Report -> Contribution to open the contribution pivot report.

You might want to analyse the contributions broken down by “Financial Type” and “Payment Method”. In this case, you can simply find the “Financial Type” field from the axes pool on the left hand side and drag it into the X axes area. Then drag the “Payment Method” field into the Y axes area.

You can now see the a table showing:

  • the number of contribution you received per “Financial Type” per “Payment Method”

  • the total number of contributions per “Financial Type” regardless of “Payment Method” in the last column

  • the total number of contributions per “Payment Method” regardless of “Financial Type” in the last row

Filter and calculation

Now since you have a table of all your contributions broken down by “Financial Type” and “Payment Method”, you might want to filter it to only see the contributions made in 2017.

In order to do so, you can simply find the “Received Date” field in the axis pool and click on the filter button. Because the field we are filtering is a date field, you will be able to narrow down the records by specifying the date range in the filter popup. Once confirmed, the result in the table will only include the contributions whose “Received Date” is within 2017.

Also instead of seeing the counts of the contributions, you may want to see the sums of “Total Amount” instead. You can achieve that by changing the calculation from “Count” to “Sum” and select the field “Total Amount” to sum with from the second dropdown list revealed.

Save and Load Report Configurations

Now you have created a report with a few axes, you also added some filters and changed the calculations. You might look at the nice report and wonder “great, now do I need to do this again next time I want to see the same report?”

Don’t you worry, you can also save report configurations!

On your report, click on "Save As New" button and type in a name for your report in the popup then click on “OK”. Your report configuration is saved at this point. When you come back to the report next time, by simply selecting the configuration from the dropdown list, you will be able to reproduce any complicated report in no time.

Export and Charts

Once you have built your perfect report, there are many ways you can interrogate your report result further. In CiviCRM Pivot Report, you can always export your report as a CSV/ TSV file to perform more spreadsheet magic. While if you want to see a more graphic view of your data, the extension is shipped with multiple chart and graph views which you can transform your report to.

Large Dataset Handling

The previous iteration of the extension struggled to work quickly with large (>100k) datasets. We've worked hard to add a solution to this and now have a "caching" solution to help speed up data loading time.

A "Pivot Report Cache Build (chunk)" scheduled job is now available once the extension is installed. Each time the job is executed, it will build cache for all data records or a part of the data records if necessary. It might take a few executions to complete the cache building for your entire dataset depending on your dataset size but this will allow the entire cache building process to be handled in the background without bringing any performance impact to the normal usage of the system.

Also, with "CiviCRM Reports: Admin Pivot Report" permission, admins will be able to view the last cache refresh time via "Administer -> Pivot Report Configuration" and manually refresh the entire cache when needed.

Future developments

We have big plans for this extension and hope to reach a level of feature parity with the existing reporting solution within CiviCRM in the not too distant future (including ability to add as dashlets and also email reports). We’ll also be making it all “Shoreditch” in time for the release of the new theme!

Download and Install

Enough talking and it’s time to try it out yourself.

The CiviCRM Pivot Report releases can be found in CiviCRM extension directory and also in Compucorp Github.

Please note that you need the latest stable CiviCRM 4.7 to use this extension.

 

 

Reconciling money with CiviCRM

$
0
0

If you're a small organization with minimal or straightforward income from CiviCRM, you probably are happy with using CiviCRM income reporting for the purpose it was originally designed, i.e. for helping you engage with your constituents.

But if you are larger, use a payment processor, and your reporting needs are more complex (e.g. a political party that needs to report income rather carefully), then you will have run into the challenge of reconciling payment processor income in CiviCRM against your bookkeeping system and bank account. This is especially true if you are using a payment processor that deposits money into your bank account somewhat erratically in batches. In that case, matching up which of your contribution payments in CiviCRM are being deposited into your bank account, and when, becomes very laborious.

We've had a couple of organizations looking for help with this, so the latest iATS Payments Extension comes with a new report to partially help with this problem.

First, here's a better description of the problem.

1. Typically, income categorization is done in an automated or semi-automated way in CiviCRM. So for example, which income is assigned to special funds, or which is actually taxes paid that needs to be separated out.

2. Your bookkeeping relies on your bank account statements to reflect the income collected via CiviCRM.

3. Your monthly income as reported in CiviCRM will only rarely exactly match the income showing up in your bank account.

The reasons it might not match are numerous (administrator error, chargebacks, and differing timezones are the three main ones), and the only way to really get it right is to be able to identify which of the payments showing in CiviCRM actually ended up in the bank, and when.

Things like cheques, or anything that is just reported in CiviCRM but doesn't transact in CiviCRM, is relatively easy to match up. But payments that go through a payment processor can be very hard to match because they will get bundled up and deposited at a time later than that showing up in CiviCRM. For example, in Canada, these are often bundled by credit card type each day.

The approach that we use (and what the clients were doing previously, manually) is to make use of the payment processor reports as an interim layer of reconciliation. Specifically, if we can match up the appropriate contributions in CiviCRM against those recorded in the payment processor, then the batches getting deposited into the bank account should be reconcilable.

Note that this strategy assumes that the payment processor is only used with CiviCRM, and it can only reconcile the income in CiviCRM that corresponds to the income going through the payment processor, but in cases where for example the occasional manual payments get put through a payment processor, this strategy will help identify them.

The way the payments in the processor reports get matched against the entries in CiviCRM is with the use of the contribution "invoice ID", a globally unique and immutable (and illegible to people ...) string assigned to each contribution. Because that string is passed to the payment processor and stored there, it can also be used to match back against the CiviCRM payment information. There's also a separate transaction id that is generated at the payment processor and sent back to CiviCRM, which is also useful.

Ready to try it out? It's just a slightly altered version of the standard contribution report, with extra fields that pull in matching information from the iATS journal tables. It'll be included in the next iATS extension release (1.6.2) which is currently in beta - feel free to try it out, or you can wait for the official release. Documentation forthcoming on the extension wiki.

 

 

Stripe for Credit card payments

$
0
0

If you've heard of stripe you'll know it's a great platform for accepting credit card payments.  If you haven't heard of it and are reading this then you should try it out: https://stripe.com

If you already use Stripe please read to the end and upgrade to 5.0 as soon as possible.

Stripe logoFrom the Stripe website: "Stripe is the best way to accept payments online. Stripe aims to expand internet commerce by making it easy to process transactions and manage an online business."

 

 

There are three reasons I recommend it to my clients:

  1. You don't need to know about PCI compliance - credit card details NEVER get sent to your CiviCRM server (they are submitted via Javascript directly to Stripe instead).
  2. Sign-up is REALLY easy and quick - you certainly don't need to send them a photo of your 3rd uncle to verify your identity.
  3. Fees are lower than other popular payment systems.

 

If you have been using Stripe with CiviCRM you'll know that the integration had become a little out of date, with many users suffering from the "Stripe token not passed" and other issues.

That has now changed! Some of you will have noticed a new 5.0 release.  

mjwconsulting logo

ptplogo

MJW Consulting have now taken over as the maintainers of the extension and, in partnership with Progressive Technology Project have rewritten much of the user-facing parts so that it now works properly in all situations:
 

 

How?

You can download 5.0 now from: https://civicrm.org/extensions/stripe-payment-processor or ask your system integrator for more information.

For development / feature requests / issues please see https://lab.civicrm.org/extensions/stripe

Why upgrade to 5.0?

5.0 is a stable base.  We will be releasing 5.1 soon which will introduce some new features, upgrading will ONLY be supported from 5.0.

  • Lot's of bugfixes.
  • New CiviCRM standard IPN (using civicrm/payment/ipn/XX).
  • Multiple Stripe processors supported.

What is coming in 5.1?

That all depends on what funding is offered!

  • Remove requirement to have an email address in order to make a payment.
  • Submit more information to Stripe (eg. contact ID / name) so it is easier for staff to review.
  • Significantly improve reliability of recurring payments (and support Joomla properly for recurring payments).
  • Support Cancellation of recurring payments from within CiviCRM (pending funding).

The Future?

  • The Stripe platform supports a whole range of payment systems, not just credit card.  We could implement additional payment methods such as SEPA (Europe), Multibanco (Portugal).
  • Charging an existing customers card.
  • Notification of a failed payment in CiviCRM.

If your organisation can offer funding we can implement it!

Bitcoin payments for CiviCRM

$
0
0

This extension integrates the Bitpay payment processor with CiviCRM and allows you to accept payments that can be paid in Bitcoin and Bitcoin Cash.

 

MJW Consulting were approached by the Calyx Institute to develop a replacement for the old bitcoin extension that was no longer supported.

 

Download the extension from the extension directory here: https://civicrm.org/extensions/bitpay

Setup is straightforward, you have to setup an account at https://bitpay.com, "pair" your system with their API and add the payment processor to one or more contribution pages.  On the contribution page you select items to pay for in the normal way, then on the "Thankyou" page a bitpay invoice is displayed:

For detailed setup instructions please see https://github.com/nickcalyx/Bitpay-for-Civicrm/blob/1.0/docs/setup.md

 

This extension was funded by the Calyx Institute: https://www.calyxinstitute.org/

On Twitter: https://twitter.com/calyxinstitute/status/1124095018984198145

 

Previous bitpay extension: https://github.com/circleinteractive/uk.co.circleinteractive.payment.bit...

--

By the way, MJW Consulting have rebranded!  We now have new logo and a new website in English and Portuguese at https://www.mjwconsult.co.uk thanks to https://visuali.st/

iATS Payments: We have a Winner & an announcement!

$
0
0

Thank you again to all who participated in our Summer Survey. We are currently reviewing the results and already have some exciting ideas that we hope to present to the community soon, so watch this space!

 

 We have a Winner

 

We would like to congratulate Larry Kuttner, IT Manager at Northeast Sustainable Energy Association, who is our lucky winner of a $500.00 donation to the non-profit organization of his choice.

If you would like to know more about the wonderful work NESEA does, you can check them out here: http://nesea.org/about

 

Announcement New Payments Extension

 

Last but not least, in iATS continued commitment to support the CiviCRM community, we are excited to announce the Beta release of our new iATS CiviCRM payment extension. We are committed to providing the most advanced, secure & fully integrated payments platform to meet the needs of the CiviCRM community, which is why we have fully funded the development, as well as ongoing support and maintenance for this new extension.

 

Here is a sneak peek at some of the enhanced features users can expect, with many more to come:

 

  • Upgraded security features & reduced PCI Scope
  • Quickbooks CSV. export template
  • New reporting portal

 

We are still looking for a limited number of organizations to be part of our Beta group. If you are a CiviCRM user and would like to learn more about being part of this exclusive Beta testing pool, please fill out our website form and we will reach out to you promptly: If you are an existing iATS/CiviCRM user, stay tuned for our full launch announcement and release.

 

Click Here

University of Minnesota Foundation's Crowdfunding Platform Leads to Increased Fundraising and Engagement

$
0
0
University of Minnesota Foundation's Crowdfunding Platform Leads to Increased Fundraising and Engagementkatetak2016-04-04 - 13:39

Peer-to-peer fundraising is a hot topic these days. With many different options in the marketplace, it can be hard to choose one that'll work with existing software and have all the features you need for a successful campaign.

University of Minnesota FoundationThe University of Minnesota Foundation (UMF) needed a robust, scalable crowdfunding platform to accommodate the diverse range of causes and interests of the more than 66,000 students on seven campuses. In addition to standard crowdfunding features, they wanted several customizations to boost the power of team and personal campaign pages, plus integration with their accounting software.

After UMF's crowdfunding site launched, giving shot up by 350% and attracted the attention of many first-time donors. The new crowdfunding website empowers supporters to create personalized fundraising web pages to share with their family and friends in just a few simple steps.

Skvare customized the site to suit UMF’s specifications, adding many new features by extending CiviCRM and Drupal software. They employed the Search API with Drupal Views to accurately find and display some of the more than 400 campaign pages. Skvare also created a new Drupal module, Views CiviCRM Expose Tables, to clearly display all the participant and team page information.

The University of Minnesota Foundation’s crowdfunding website is a prime example of the type of large-scale, flexible solutions that can be developed with open-source tools.

To learn more about this crowdfunding project or other CiviCRM solutions, please visit Skvare.

 

IPN Notification URLs are hard; make them easy

$
0
0
IPN Notification URLs are hard; make them easyAllenShaw2020-07-28 - 08:10
The CiviCRM Easy IPN URL extension in action.

Part of the setup for a payment processor (like PayPal or Authorize.net) involves configuring some kind of pingback/notification URL so that the payment service can notify CiviCRM of payment completion or failure, especially on recurring contributions. This means you have to know the correct URL for that specific CiviCRM payment processor on your site.

If this isn't set up correctly you may see one or more of the following symptoms in CiviCRM:

  • Payments not marked as "Completed".
  • New payments not recorded in CiviCRM.

This notification URL is not something you often need to think about, but when you do, it can be a little complicated to figure out. From the docs:

Screenshot from civicrm documenattion: See below for the full address to add to the endpoint (replace NN with your actual ID number):


For Drupal and Backdrop: https://example.com/civicrm/payment/ipn/NN
For Joomla: https://example.com/?option=com_civicrm&task=civicrm/payment/ipn/NN
For WordPress: https://example.com/?page=CiviCRM&q=civicrm/payment/ipn/NN
Got it?

At Joinery, we've encountered a few clients over the years who, already stressed that their payments don't seem to be recording correctly, had a really hard time determining the correct URL. And being sure that URL is right goes a long way toward diagnosing such problems. It's an easy fix if you can easily determine the URL; but it's nerve-wracking if you're not sure.

So, we created a simple extension to make it easy.

The CiviCRM Easy IPN URL extension is pretty simple. It just adds a new link in CiviCRM's Payment Processor listing that displays the proper notification URL, with a single click. This way you don’t have to piece together a URL on your own or instruct clients on how to formulate such a URL themselves.

Learn more or download the extension yourself here, and let us know how it helps you -- and of course, requests for improvements are always welcome.

Comments

This looks handy! I'm wondering if this should be core functionality?

Stripe: Solving Card-Testing and Fraudulent Transactions

$
0
0
Stripe: Solving Card-Testing and Fraudulent TransactionsAllenShaw2023-01-02 - 09:15

Several of J­oinery's clients recently started seeing a dramatic increase in fraudulent card-testing behavior on CiviCRM sites using the Stripe payment processor. We've resolved this problem for them with some great new features in the CiviCRM extension ecosystem, thanks to the contributions from open-source developers and CiviCRM partners.

If you're seeing a large number of failed or fraudulent transactions in your Stripe dashboard, you may want to look into the solutions mentioned below. 

Is this affecting me?

If it is, your Stripe.com payments page probably looks a lot like this – like, pages and pages of entries like this:

Stripe.com Payments list showing numerous blocked/faudulent payments
Stripe.com Payments list showing numerous blocked/faudulent payments

What is card testing?

Card testing is a way for credit card thieves to test whether a stolen credit card is still active, by making a small donation on your site. If the transaction is successful, they know the card is still good for making larger purchases elsewhere. For more background, Stripe explains the general nature of card testing in its article, Protect yourself from card testing.

Is this a serious problem?

Although this activity is obviously fraudulent and criminal, it does not mean that someone is stealing anything (neither money nor information) from you or your contacts. But left un-checked it could have some negative consequences for you. We've heard from people who've had one or more of these things happen as a result:

  • Stripe account suspension: Stripe determines that there's too much card-testing activity on the site, and they disable the organization's account and refuse to process payments until the problem is resolved.
  • Complaints from card theft victims: A stolen card is used by a thief to make a donation, and the organization receives an angry phone call from the card owner demanding an explanation (and a refund, of course).
  • Site downtime or slow performance: The organization's site becomes very slow to use, or becomes completely unresponsive, due to a high volume of automated card-testing activity.

How we've addressed this on client sites:

The solution for Joinery's clients has been fairly simple, thanks to the work of several open-source extension developers and CiviCRM partners.

If you're seeing this kind of behavior on your site, there's a good chance the following simple steps will take care of it:

  • Update to the latest version of these extensions:
  • Obtain an api key for Google's reCAPTCHA v3 (this reCAPTCHA requires no interaction from the user, so no need for those annoying "I'm not a robot" checkboxes).
  • In CiviCRM, visit Administer->System Settings->Form Protection Settings and configure the Form Protection extension to use reCAPTCHA v3 on all forms – or at the very least, on all public-facing forms where payment via Stripe is an option.
  • Test your payment forms yourself to ensure payments are being processed successfully; do this as an anonymous user (or with whatever non-administrative user role that your contacts would be using).

Can somebody help me with this?

If the above isn't working for you, then you may have a unique configuration that needs more specialized help. Or, you might just want someone to help. You can contact Joinery, or any CiviCRM expert, to help you out.

Who can we thank for this?

If you're glad, as I am, that open-source developers and CiviCRM partners are putting in the hard work to make these solutions available, you might want to support them with a kind word, a business referral, or in some other way. For the above solutions, some of the contributors I'm aware of are: 

4 people liked this (login to vote or to comment)

Comments

Great idea to do a blog post about this. I was really impressed with how the community came together to share information, ideas and solutions during the peak of the attacks. A testament to the benefits of open source software, and the amazing CiviCRM community. Thanks everyone.

@JKingsnorth: Right, Firewall is required now by the Stripe extension. But I'll make an edit to mention it specifically.

We had the issue last December on the donation form (thousands of 10 euros payment, all of them ended up as "denied" by Stripe). I saw in Mattermost that it is advised to set a higher minimum amount (i.e. 15 euros).

I'd just like to say thank you to everyone listed above who supported this work and for the time you've spent to post this blog.

This will absolutely be something that will help so many organisations and you're effort is valued so much by the community.

Thank you!

Just to muddy the waters...!

Privacy respecting people don't ask friends to use Google reCaptcha v3, and law abiding organsiations probably don't let their European/UK (at least) friends use it without *first* obtaining consent[1]. As I understand from what I've read, it sends an enormous amount of personal data - basically anything it can obtain including mouse movements and keystrokes (that password you just typed?..) and combines it with other data on you personally that google has tracked to Google.[2]

Much like a vampire, Google builds these tools so that you (desperate site admins faced with a sudden army of card testing abuse bots and needing protection quick) invite it in. Much like a vampire it then sucks the lifeblood (well, personal data) out of your users.

I'm awkward and fussy and a bit prim at times and I just plain don't like this. We've seen time and again that these giant companies don't have our best interests at heart and can use our personal data against us and withdraw services, in an instant.

So I'm working on another approach; another firewall type thing. It's called Moat (a moat is a defensive river that they used to build around castles and cities).

Moat provides a highly configurable dynamic firewall-type system for extensions to use. It’s based on setting rate limits on certain activities, and then taking certain actions when a flood of that occurs.

Examples

- There should not be 2 or more card fraud errors from a given IP address within a week.
- A hash/token for something must only be used once.
- There should not be more than 2 contact form submissions from the same email in a day, and not more than 5 in a week.

Moat[3] can be configured with different settings for different alert levels, and automatically bump itself up a level in response to a certain flood - that's the dynamic part. It can also provide security tokens of various types and even comes with a picture based CAPTCHA - or half of one (ask me).

It has been used in the wild and was successful at fending off a card testing attack. But it's still new, and I'm really posting here to raise interest in discussing and developing it. Note that Moat doesn't do anything by itself; installing it will do nothing to protect you; but rather it provides tools for other extensions to provide suitable protection for whatever they need.

So far the only implementation I've done for Moat is Inlay Pay[4] (embeddable payment forms), which supports the CAPTCHA if enabled, and I've also done a fork of Stripe[5] that uses Moat instead of Firewall (I don't mean to fragment the Stripe extension; I have no intention of this being a permanent fork).

If you're interested in discussing this, please @artfulrobot me directly or in the dev channel of the chat at https://chat.civicrm.org

Rich (they/them)

Links:

[1] https://measuredcollective.com/gdpr-recaptcha-how-to-stay-compliant-wit…
[2] https://usercentrics.com/knowledge-hub/googles-recaptcha-what-you-need-…
[3] https://codeberg.org/artfulrobot/moat
[4] https://lab.civicrm.org/extensions/inlaypay
[5] https://lab.civicrm.org/artfulrobot/stripe/-/tree/artfulrobot-moat

I am very glad to have found this. Dec 31, 2022 / Jan 1, 2023 we experienced massive (140,400 attempts within 18 hours) card testing activity on our Stripe account. I hope that these extensions will prevent further activity like this. Thank you for your work on this.


Viewing all 48 articles
Browse latest View live