# Question
Title: Recurring payments being set to pending - Stripe
I've inherited a CiviCRM 5.21.0 install on Wordpress, using Stripe to process membership payments. When a member chooses the "recurring payment" option on signup (Please renew my membership automatically), CiviCRM doesn't accept that as paid and doesn't add them as members. Instead they are listed as

Pending (Incomplete Transaction)

Non-recurring memberships are entered without a problem.

Any help appreciated.

# Answer
Go to your System Status page and check for any stripe warnings

In particular look for any notices about Stripe webhooks that might need resetting.

Also ensure you are on latest versions.
> 2 votes

---
Tags: civimember, recurring-contributions, stripe
---


# Question
Title: how to search for contacts selected in contact reference fields
Civi 5.15.1, WordPress 5.4.1

Some of our contacts ask us to send our communications to someone else, a "designated contact" or DC. To accommodate them, we created custom Contact Reference fields for email and phone/text, and for mail we use Civi's built-in "Use another contact's address" feature. To mark someone as a DC, we created a Contact Subtype and a Smart Group based on that subtype. However, new DCs don't come around that often, so our back-end data entry staff haven't consistently remembered to use the subtype. Also, we wouldn't otherwise need the subtype because there are no custom contact fields associated with it. We just need the Smart Group.

So I was hoping to get rid of the unnecessary subtype step, and modify the Smart Group to be comprised of contacts who are the selected values for either of our custom Contact Reference fields or Civi's surrogate address field. I've looked at Advance Search, Search Builder, and the Custom Searches, to no avail. Is such a thing possible? Thanks.

# Answer
Lack of searchability is one of the downsides to using Contact References.

1) One option is to use Relationships instead of Contact Refs. You can create a smart group based on those - but you would need to convert your existing Contact Refs and associated processes.

2) Jaap's DataProcessor extension can help.

* Add a Data Source of type Individual - call it Person
* Add a second Data Source of type Individual - call it DC.
    + Join type as 'Select fields to join on'
    + Join on Field: Contact ID = Person::custom group::DC contact ref
* Add fields for the fields you want to display for Person and/or DC using 'Raw field value' - include the DC contact id.
* Add an Output of Contact Search

That will search for contacts who are DC's and show the fields you configure.

Although Contact Search has an action to create a smart group, I have not got that to work with DataProcessor (yet) - so it does not completely solve your problem. You could though run it and add the found contacts to a static group.

I guess Jaap would welcome any PR's or sponsorship to make smart groups work as a dataprocessor output.
> 2 votes

---
Tags: search, smartgroups, contact-reference
---


# Question
Title: Not seeing engagement index option when adding activities
I'm not seeing an option to set engagement index when trying to add activities? Do I need to enable it somewhere first?

# Answer
> 1 votes
Fixing the permissions fixed this. Needed to add permissions for civicampaign When I was not seeing the engagement index in activities it was when I was logged in as a user who didn't have campaign permissions.

# Answer
> 3 votes
For the engagement index to show you need to have CiviCampaign enabled. For details on how to set up the index and other useful guidance you can also see the latest user guide

https://docs.civicrm.org/user/en/latest/civic-engagement/everyday-tasks/#using-the-engagement-index

Hopefully it's just as simple as that to solve.

# Answer
> 1 votes
From docs

> You can record an Engagement Index for the following activities or actions: Phone Call, Meeting or Interview.

Are you trying to do this for other Activity Types?

---
Tags: activities, activity
---


title: Delete multiple Contributions

text:
# Question
Title: Delete multiple Contributions
I'm not 100% sure, if the next process is safe or not, so first of all, I ask...

In my company's CiviCRM are more than 3900 Contributions, which should be deleted. These Contributions can be listed as result of a report in CiviReport, but not as result from the SearchBuilder because the query is too difficult for SearchBuilder (with 'NOT IN' clauses etc.).

On the report's page, on the Developer tab I see the SQL query of the report, and I have access to the CiviCRM's database, so I can run this query. I can rewrite the SELECT query to a DELETE query.

Is it safe - after backuping the database - run the DELETE query to delete all unneeded Contributions from the civicrm\_contribution table, or it causes database inconsistency?

Thank you!

# Answer
> 2 votes
It will depend on how the contributions were created and whether payments were associated with it.

The best ERD I know of is this one doc.symbiotic.coop/dev/civicrm/latest/schema/index.html

At a minimum you will probably need to check the civicrm\_line\_item table as well as civicrm\_contribution.

---
Tags: contributions, delete
---


# Question
Title: How to show a CSS class of a contribution form based on Stripe iFrame element via jquery?
I would like to add a jquery in my extension, as I enter the card details on the stripe, the submit button should show, otherwise hide. Since the new stripe element is served on an iFrame, I am struggling to figure it out, although I have targeted the parent class, still no avail... Can anyone help please? Here's my code..

```
CRM_Core_Resources::singleton()->addScript("
  CRM.$(function($) {
    showSubmit();
    $('div#billing-payment-block div#card-element .__PrivateStripeElement input.__PrivateStripeElement-input').bind('change keyup click blur', showSubmit);
    function showSubmit() {
        let cardValue = $('div#billing-payment-block div#card-element .__PrivateStripeElement input.__PrivateStripeElement-input').val();
    if (cardValue.length> 0) {
        $('span.crm-button.crm-button-type-upload.crm-button_qf_Main_upload.crm-i-button').show('slow');
      }
      else {
        $('span.crm-button.crm-button-type-upload.crm-button_qf_Main_upload.crm-i-button').slideUp('slow');
      }
    }
  });
");

```

# Answer
> 1 votes
You can use the Stripe element events to trigger something - see https://stripe.com/docs/js/element/events

We do that in the Stripe extension here: https://lab.civicrm.org/extensions/stripe/-/blob/master/js/civicrm\_stripe.js#L281

There are some useful CiviCRM/Stripe extension events which help with frontend integrations and we are open to adding more: https://docs.civicrm.org/stripe/en/latest/events/

---
Tags: extension, stripe, jquery, user-experience
---


# Question
Title: What are typical drupal 7 absolute resource URLs?
As the question says - what are the typical drupal absolute resource urls?

Is it:

or is it:

or is it something else

# Answer
> 2 votes
If you install a drupal 7 tarball and mostly keep clicking next, and then install a civi tarball and mostly click next, it's the first set you've listed.

It is definitely not the 2nd one.

But to be fully absolute you need to include http:// or https://

---
Tags: settings, resource-urls
---


# Question
Title: CiviRules triggers, but fails to send email
I'm using CiviCRM 5.18.4 on WordPress 5.4.1. I have been successfully using CiviRules to send a welcome email when a contact adds a (pending) membership.

Now, I have created a rule that is supposed to send a different ("Membership Confirmation") email when we confirm the person's eligibility and donation:

Linked Trigger: Membership is changed

Linked Condition(s): Membership Status is one of "New"

Linked Action(s):
Send e-mail from \[our email address\] using primary e-mailaddress with Template "Membership Confirmation" to the contact and bcc to \[internal staff\] Delay by 5 minutes

Have tried it with or without delay, and with various (simplified) email templates. Result is consistent: When we approve the donation, it successfully changes the membership status to NEW, and the Event IS TRIGGERED for that contact. However, the emails do not get sent, and the emails do not appear in the "activities" list for that contact (although the donation and membership activities do). No error is reported, and nothing at all appears in the CiviRules Log.

\[Note: I just installed the CiviRules Logger extension, I haven't seen any logs appearing even on events that trigger and work properly, so I don't really know if the logger is working.\]

Any ideas? Could something be wrong with the email format? Is it the way I have written the rule? Is something going wrong on the back end?

Thanks for any thoughts!

UPDATE: I did finally get an error in the Civirules log:

2020-05-12 18:00 error Rule: 'Membership Confirmation Email' with id 6 failed for contact 595 because of Failed to execute delayed action
Array

( \[rule\_title\] =\> Membership Confirmation Email \[original\_error\] =\> Civirules api action exception: id is not a valid integer. API call: Email.send with params: from\_name="\[org name\]", from\_email="\[our email\]", template\_id="74", location\_type\_id="", alternative\_receiver\_address="", cc="", bcc="\[internal staff email\]", file\_on\_case="", contact\_id="595", extra\_data="Array"

```
[reason] => Failed to execute delayed action

```

)

Can anyone interpret that for me? Which id is not a valid integer?

# Answer
> 0 votes
When you have a delayed email, it generates a record in the `civicrm_queue_item` table. Since you're experiencing the same problem without a delay, this is unlikely to solve the problem on its own, but is a good way to troubleshoot whether an email was generated while isolating confounding factors like cron not running, a bad outgoing email setting, etc.

# Answer
> 0 votes
From your error message it seems that the location\_type\_id is empty when you try to send the email. That might explain the error as it would expect an integer, and not empty. Could you add a location\_type\_id in the configuration of the send Email and see if that is a workaround for you?

The action should be able to deal with an empty location\_type\_id but perhaps the latest version has a little bug there?

If it does work, could you please report the issue here: https://lab.civicrm.org/extensions/civirules/-/issues? That means the developers who want to contribute can see this bug needs to be fixed.

---
Tags: civirules, logging
---


# Question
Title: Why are custom field's multiple choice options all unchecked on contribution page?
Today I installed 5.25.0 (running with Drupal 7.69). I have a profile that includes a couple of custom fields that are multiple-choice (e.g. professional interests - check all the apply). The choices that are checked appear on the member's profile page and when they edit the profile with those fields directly. So that all looks fine.

Not so much on the contribution page that includes that profile and fields. Every option is unchecked on the contribution page. They used to appear checked on the contribution page, but no more.

Even curiouser...one of the fields is required and the contribution page cannot be submitted unless EVERY option is checked. Normally with this field required, only one option needs to be checked.

So I am wondering if this is a new bug? Anyone else seen this? Suggestions?

Thanks, as always to the community :-)

# Answer
> 1 votes
Try applying patch from below PR

https://github.com/civicrm/civicrm-core/pull/16991

https://github.com/civicrm/civicrm-core/pull/16981

HTH

Pradeep

---
Tags: drupal, civicontribute, custom-fields, multiple-choice
---


# Question
Title: How to adjust the column width of an item on a contribution receipt?
As it can be seen from screenshot below, the "QTY" column is too close to the "Donation amount" and often times it can be mistaken as "1081" instead of "108". Is there a way to adjust the column width of QTY on a contribution receipt? I have tried add `style="min-width:20%"` but doesnt work. Any tips would be much appreciated. Thanks

# Answer
would be nice to have border for tables to avoid confusion. you can add css in your message template, either it can be inline or using tag

```
{literal}
  <style>
    .button-group {
      display: block;
      margin-top: 5px !important;
      margin-bottom: 5px !important;
   }
  </style>
{/literal}

```

Thanks Pradeep
> 1 votes

---
Tags: receipts, smarty, css
---


title: Copy/Duplicate a Contribution

text:
# Question
Title: Copy/Duplicate a Contribution
I've been requested to add a feature to our installation that allows an admin to copy or duplicate an existing contribution, including all it's custom fields.

I was wondering if anyone has tackled this before, or if there is an extension out there which may help.

If not, any pointers to doing this the right way? Should/Can this be written as an extension?

I was thinking to add a button on the contribution view page (not sure which template this may be yet), and then use the API to pull the current contribution (hopefully with custom fields) and create a new one with the same fields (removing/replacing the transaction id so we don't have a duplicate key).

I'd appreciate any tips on this.

# Answer
To this very old but unanswered question, I'll answer that there's now an extension that does exactly what you're asking: Clone Contribution. Quoting from the description:

> This extension provides:
>
> * UI controls to clone a particular contribution, wherever contributions are listed (e.g., a contact's Contributions tab; contributions search results).
> * Options to omit certain contribution properties from the cloning process (i.e., properties that will not be copied from the source contribution to the new contribution).
> * An API Contribution.clone for cloning any number of contributions.
>
> During the cloning process, the following contribution properties can be changed so that they're immediately different in the new contribution:
>
> * Contribution Status

I'm the developer on this extension.
> 2 votes

---
Tags: contributions
---


title: Help to renew membership using the API

text:
# Question
Title: Help to renew membership using the API
I would like to programatically renew memberships when a transaction has been completed in Woocommerce.
I want my members to have a more consistent experience and since I do a lot through the woocommerce store already, I wanted to do renewals and new memberships.

I need some confirmation to see if I'm doing this correctly though - For a new membership, I think it is straight forward to simply do:

--confirm no membership entries exist already for this contact\_id

$result = civicrm\_api3('Membership', 'get', \[ 'sequential' =\> 1, 'contact\_id' =\> 15947, \]);

--Create a new membership entry

$result = civicrm\_api3('Membership', 'create', \[ 'membership\_type\_id' =\> "Registered Participant", 'contact\_id' =\> 15947, 'start\_date' =\> 20200513, 'end\_date' =\> 20210513, 'source' =\> "Payment", \]);

But for a renewal, I don't want to keep adding additional lines of membership entries so I am thinking same above except if an entry is found, issue a create with the ID and it should renew it correctly?

--confirm no membership entries exist already for this contact\_id

$result = civicrm\_api3('Membership', 'get', \[ 'sequential' =\> 1, 'contact\_id' =\> 15947, \]);

-- Entry found so renew

$result = civicrm\_api3('Membership', 'create', \[ 'membership\_type\_id' =\> "Registered Participant", 'contact\_id' =\> 15947, 'start\_date' =\> 20200513, 'end\_date' =\> 20210513, 'source' =\> "Payment", 'status\_id' =\> "Current", 'id' =\> 8746, \]);

So the only difference between a new membership and a renewal is the 'id' and 'status\_id' ?

# Answer
So this was my solution. Using Wordpress triggers, its fired off whenever an order is submitted and successfully paid. If it contains the product to create new/or renew then. I hope it helps someone. I still need to add some error traps, otherwise should work fine for my setup.

```
 # Product ID for the registered participant is noted below
 #error_log("Line items: $item\n");
 if ($item["product_id"] == 33706) {
     $result = civicrm_api3('Membership', 'get', [ 'sequential' => 1, 'contact_id' => $contactid, ]);
     if ($result["count"] == 0) {
         #create new membership entry
         #start date/end date will be today to 1 year out
         $start_date = date("Ymd");
         $end_date = date('Ymd', strtotime($start_date. ' + 1 year'));
         $result = civicrm_api3('Membership', 'create', [ 'membership_type_id' => "Registered Participant", 'contact_id' => $contactid, 'start_date' => $start_date, 'end_date' => $end_date, 'source' => $item["order_id"], ]);
     } else {
         #renew membership
         $current = $result[values][0];
         $current_start_date = $current['start_date'];
         $current_end_date = $current['end_date'];
         $membership_id = $result['id'];
         if ($current_end_date < date()) {
             $new_start_date = date("Ymd");
         } else {
             $new_start_date = $current_end_date;
         }
         $new_end_date = date('Ymd', strtotime($new_start_date. ' + 1 year'));

         $result = civicrm_api3('Membership', 'create', [ 'membership_type_id' => "Registered Participant", 'contact_id' => $contactid, 'start_date' => $new_start_date, 'end_date' => $new_end_date, 'source' => $item["order_id"], 'status_id' => "Current", 'id' => $membership_id, ]);
     }
 }

```
> 2 votes

# Answer
I have a feature called "auto-memberships" in this extension: https://github.com/adixon/ca.civicrm.contributionrecur

It might almost do what you want (it'll update existing memberships, won't create new ones, but you could add that).

There's a little record that connects a payment with a membership, which is nice if you add it, so that you can more easily identify payments that haven't yet been connected.
> 1 votes

---
Tags: civimember, api, php, renewals
---


# Question
Title: CiviContribute Component Settings not saving settings beyond Enable Tax and Invoicing option
I am setting up a fresh install (CiviCRM 5.24.5 / WordPress 5.4.1) but found that once I 'Enable Tax and Invoicing' within CiviContribute Component Settings no changes are saved on that page (I am trying to save changes to the due date, notes, tax term, and tax display settings) other than the 'Enable Tax and Invoicing' option (and I get the settings saved notification).

I am very new to this and have been working my way through using the docs (https://docs.civicrm.org/user/en/latest/contributions/sales-tax-and-vat/) and have set up Financial Account for Sales Tax/VAT just in case but to no effect. Everything appears to be working normally.

While I want the invoicing, as a small charity we are below the VAT threshold and the VAT rate is set to zero, though setting to 20 makes no difference in the VAT/Sales Tax Financial Account.

# Answer
I believe this is a regression: follow along here (and do report you're seeing this as well): https://lab.civicrm.org/dev/core/-/issues/1712

And it has been fixed (missed closing it).

You will want to upgrade your CiviCRM to either 5.24.6 or 5.25.0 (we're not sure when the fix went in).
> 0 votes

---
Tags: civicontribute, error, settings
---


# Question
Title: Can you include html in word replacements?
We have a contribution page, it says the following when credit cards are declined:

Your payment was not successful. Please try again

we want it to say:

Your payment was not successful. Please try again. If you continue to have issues, please email us.

When I use `<a href="mailto:email@mail.com">email us</a>` the word replacement gets garbles the input.

Is there another option?

# Answer
There's a WIP PR (work-in-progress code change) that if I remember right while reviewing it made it mostly work, but I do think html is iffy right now.

https://github.com/civicrm/civicrm-core/pull/15836#issuecomment-553702913

You could do it with an extension that just inserts some jquery that appends your text to the existing `<div>`. https://docs.civicrm.org/dev/en/latest/framework/region/
> 1 votes

---
Tags: civicontribute, error
---


title: Tax Receipt (CDN TAX RECEIPTS)

text:
# Question
Title: Tax Receipt (CDN TAX RECEIPTS)
On our tax receipt (using CDN TAX RECEIPTS) it says: "Charitable Registration:" - Is there any plan to change that to read: "Charitable Registration Number" on the template?

# Answer
> 2 votes
Since it's a ts() wrapped string, you should be able to use Administer - Customize Data - Word Replacements to replace it. See https://github.com/jake-mw/CDNTaxReceipts/blob/1.5.1/cdntaxreceipts.functions.inc#L409. I haven't tested that.

To fully customize it you could implement hook\_cdntaxreceipts\_writeReceipt. See https://github.com/jake-mw/CDNTaxReceipts/blob/1.5.1/cdntaxreceipts.functions.inc#L301

# Answer
> 1 votes
You can set this however you like in your template.

---
Tags: receipts, cdn-tax-receipts
---


# Question
Title: 'DB Error - No Such Table' -- CiviCase in Drupal 7
I have a Drupal 7 + CiviCRM database with CiviCase. This is a fairly new install. I would say CiviCRM was installed fresh about 3-4 months ago. As of now, CiviCRM has been upgraded to the latest current version, 5.25.0.

I noticed the following problem on 5.24, but as this is still a new install in development, its possible the problem has been there since the beginning.

When I go to Cases -\> Dashboard, I see:

> DB Error: no such table

Additionally, when I go to view a Contact, and then click the "Cases" tab, I see the follow message in the upper right of the screen:

> Unable to reach the server. Please refresh this page in your browser and try again.

How should I go about fixing this? It seems like the entire table structure is missing?

There is no production data in the CiviCase extension yet, so if it is possible to just do a complete fresh install of just that portion of CiviCRM, I can do that. I just don't know how I would do that safely without affecting the work I've done to other portions of the Drupal and CiviCRM database.

Here is the backtrace for when I see the DB error:

```
#9 /home/lapavnhy/example.com/sites/all/modules/civicrm/packages/DB/DataObject.php(2696): DB_common->query(" SELECT COUNT(*) FROM (SELECT civicrm_case.id as case_id, civicrm_case.subjec...")#10 /home/lapavnhy/example.com/sites/all/modules/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query(" SELECT COUNT(*) FROM (SELECT civicrm_case.id as case_id, civicrm_case.subjec...")
#11 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Core/DAO.php(421): DB_DataObject->query(" SELECT COUNT(*) FROM (SELECT civicrm_case.id as case_id, civicrm_case.subjec...")
#12 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Core/DAO.php(1540): CRM_Core_DAO->query(" SELECT COUNT(*) FROM (SELECT civicrm_case.id as case_id, civicrm_case.subjec...", TRUE)#13 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Case/BAO/Case.php(537): CRM_Core_DAO::singleValueQuery(" SELECT COUNT(*) FROM (SELECT civicrm_case.id as case_id, civicrm_case.subjec...")
#14 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Case/Page/DashBoard.php(71): CRM_Case_BAO_Case::getCases(NULL, (Array:0), "dashboard", TRUE)
#15 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Case/Page/DashBoard.php(100): CRM_Case_Page_DashBoard->preProcess()
#16 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Core/Invoke.php(311): CRM_Case_Page_DashBoard->run((Array:2), NULL)
#17 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Core/Invoke.php(68): CRM_Core_Invoke::runItem((Array:15))
#18 /home/lapavnhy/example.com/sites/all/modules/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:2))
#19 /home/lapavnhy/example.com/sites/all/modules/civicrm/drupal/civicrm.module(454): CRM_Core_Invoke::invoke((Array:2))
#20 /home/lapavnhy/example.com/includes/menu.inc(527): civicrm_invoke("case")
#21 /home/lapavnhy/example.com/index.php(21): menu_execute_active_handler()
#22 {main}

```

# Answer
As confirmed in chat the views hadn't been created and disabling and reenabling civicase at Administer - System Settings - Components fixed it.
> 1 votes

---
Tags: civicase, database
---


# Question
Title: Connecting Civicrm to Quickbooks classes / subclasses
I have three organizations that use Quickbooks and some other process to track contributions. I would like to encourage all of them to move to Civicrm. (They are currently using out-of-date MS Access or Excel for tracking donations.) Each have set up Quickbooks to use classes and sub-classes in their accounting. Are you actually using Civicrm and Quickbooks, AND using classes and sub-classes in Quickbooks, AND have set up Civicrm to then transfer that data into Quickbooks effectively? I have read all over the Internet and the Civi site. What I am seeking is someone who is using both programs. Practically speaking, what did you do in the setup and execution to get classes and sub-classes to translate from Civicrm to Quickbooks? I have read a little of some people using custom fields and then others who adapt Campaigns or Financial Types to make this happen, but no practical setup or practical process is communicated in their postings. Help?

# Answer
We use Civi & QuickBooks. Our QBs is only used for accounting. If we need to see donation details, we look in Civi. We do not record contribution detail in Quickbooks. We do not see a need to have that data stored in two places.

We just record the deposit in QBs. We use Class in QB for our Functional Expense allocations (Program, Restricted, and Unrestricted). Note, since most donations are not related to Functional Expense allocations (other than Program Income), we have created 2 additional Classes in QBs--Unrestricted and Restricted. So most deposits are recorded using these 2 QB Classes. We use Customer Job in QB for Line Item detail from Civi (General Fund, Building Fund, Scholarship). We do not have any donors entered as a Customer in QB.

We have our payment options in Civi to match our payment processor's deposit schedule. ACH, Visa/Mastercard, Discover. That way we can pull Line Item reports by Payment Type and date and they match our Processor Deposits. Then we record that deposit in QB with Class info (Program...) and Customer Job (We sum the Line Item Types from Civi and have one line on the Deposit entry for General Fund, Building Fund, etc).

FYI, we use the same Class and Customer Job options when recording Expenses in QBs. This allows us to run reports by Class to see Functional Expense (for expenses we do have QB Classes for Management & Fundraising). And reports by Customer Job to see Campaigns-showing income and expense for Capital Campaign.
> 2 votes

# Answer
I think I have a method that solves 90% of what you're trying to accomplish. Firstly though, I think the reason that some nonprofits want to have the full information in quickbooks is (1) so they can pull P&L reports on specific programs, which can only be done with classed contributions (2) many organizations want to have the full data in quickbooks, especially if they already have years of files in it.

This method does not use the "accounting batch" feature in civi, as this feature only brings transactions into the journal entry, not into sales receipts. I would recommend that the core team expand the options for "accounting batches to include more fields (like the ones later on in this answer)

Here's what you do:

There is a $200 software called "transaction pro importer" which can convert an excel sheet into sales receipts. (transactionpro.com)

If you create a customized bookkeeping report in civireports and export as spreadsheet (which needs to be saved as regular sheet, not csv), and use very specific fields, you can sort transactions by batch and export all the transactions and fields that you want to pull into quickbooks.

disclaimer: im still struggling to work out how processing fees show up on reports (i use stripe) because they are currently goofing up my report by including two (or more) line items for every transaction.

The mapping will look something like this: Civi\>Quickbooks

* External ID\>\>\>Customer
* Line item financial type\>\>\>item
* campaign\>\>\>class (please note you can't use subclasses)
* payment instrument\>\>\>payment type
* date received\>\>\>date
* contribution id\>\>\>receipt #
* check #\>\>\>check #

for those who want their quickbooks to have all the detailed transaction information, i think this is the way to go, even though it could use some improvement.
> 1 votes

# Answer
I haven't used it, but saw the recent blog post about the CiviQuickbooks extension which could be worth exploring.

> If your organisation is using QuickBooks Online, then cheer up, we have some good news! You can now integrate your accounting system with CiviCRM:
>
> * CiviCRM Contacts and Contributions are pushed to QuickBooks
> * Linked QuickBooks Invoices are pulled into CiviCRM, updating the Contribution status.
> * Sit back and enjoy the synchronisation of all things!
>
> Integration of the two systems saves you time by not having to do repetitive data entry in your accounting system and CiviCRM. This extension does the work for you!
> 0 votes

---
Tags: civicontribute, export, accounting
---


# Question
Title: Importing CiviCRM Transactions into quickbooks
I'm wondering whether to start invoicing with Quickbooks and I am wondering if when I upload civicrm transactions into quickbooks if it will automatically link the payment to the invoice?

Can CiviCRM and Quickbooks to work together to avoid double entry?

# Answer
How about invoicing in CiviCRM - you can do so as of 4.6!

Here's how: https://docs.civicrm.org/user/en/4.6/contributions/invoicing/
> 3 votes

# Answer
So after searching the web like a mad man for some instructions on integration with Quickbooks, I found very little. I poked around for a while and this is what I found. Most of you probably know this already but for those who don't, this will be helpful.

To import transactions into quickbooks, you have to use Accounting batches in Contributions \> Accounting Batches. Figuring out how to create batches is pretty straight forward. Then you want to export the batch as a .IIF file.

In Quickbooks From the File menu, choose Utilities , select Import and click IIF Files.

Quickbooks will import the transactions and its details as a General Journal. So if you were hoping (like I was) that it would create contacts quickbooks and fill the transactional data for each contact, it doesn't.

So my idea of invoicing from Quickbooks and having CiviCRM contributions credit the invoices doesn't work.
> 1 votes

# Answer
I haven't used it, but saw the recent blog post about the CiviQuickbooks extension which could be worth exploring.

> If your organisation is using QuickBooks Online, then cheer up, we have some good news! You can now integrate your accounting system with CiviCRM:
>
> * CiviCRM Contacts and Contributions are pushed to QuickBooks
> * Linked QuickBooks Invoices are pulled into CiviCRM, updating the Contribution status.
> * Sit back and enjoy the synchronisation of all things!
>
> Integration of the two systems saves you time by not having to do repetitive data entry in your accounting system and CiviCRM. This extension does the work for you!
> 0 votes

---
Tags: civireport
---


title: Webform creating duplicate contact

text:
# Question
Title: Webform creating duplicate contact
The snippets below show the duplicate contacts, the webform CiviCRM tab, and the matching rules. If I fill in name & a matching email the form updates the contact, does not create a dup. If I supply name & a matching phone the duplicate shows up. The Civi and Drupal logs don't show anything related. Thoughts?

Civi v5.24.3, Drupal v7.69, PHP v7.1.14, MySQL v5.6.41-84.1, Webform v7.x-4.22, Webform CiviCRM v7.x-4.28.

# Answer
Per Karin's advice, filed bug report on Core - https://lab.civicrm.org/dev/core/-/issues/1767. Filed a separate one for webform\_civicrm - https://www.drupal.org/project/webform\_civicrm/issues/3137284. Both are needed for our use case. I proposed patches with each issue, should anyone else run into this before it is fixed properly. BTW, good to know that the phone match is based on digits only. All formatting & decorations are stripped off.
> 3 votes

---
Tags: webform-civicrm, dedupe-rules
---


# Question
Title: IDS causing site to fail for lots of visitors
We are getting IDS errors left and right. We would get complaints here and there that our site isn't working and after reviewing our logs, IDS errors everywhere.

Mostly getting the error: `There is a validation error with your HTML input. Your activity is a bit suspicious, hence aborting`

We also seem to get this warning `[warning] Deprecated Path: There is a setting (generate_schema_and_data) not correctly defined. You may see unpredictability due to this. CRM_Core_Setting::setItems
Array
(
 [civi.tag] => deprecated
)`

Not sure if they are related - but sharing in case it is.

D7 5.24.3 (but this has existed for some time now.)

# Answer
> 2 votes
The first problem can be avoided by checking 'Skip IDS check' in Drupal permissions. I have this checked for my clients, and it hasn't resulted in any problems.

The second message is 'normal' - I'm getting this message too for my clients. I guess it's some PHP warning?

---
Tags: security
---


# Question
Title: Membership status rule - restart at 'New'
I would like the membership status to revert back to 'New' if someone renews/rejoins once their existing membership is 'Expired' (rather than 'Current').

We're looking at CiviRules for this (likely with a custom action?) but thought I'd ask if anyone has a suggestion on a configuration option that may be more end user friendly that I just can't think of?

Thanks in advance, Rebecca

# Answer
> 2 votes
We have gone with a CiviRule and created a custom action:

trigger - 'membership is changed'

field value comparison on 'membership status' from (original value) 'expired' to 'current'

The custom action then changes that status immediately to 'new' with a status override for 6 months from the renewal data.

---
Tags: civimember
---


# Question
Title: How do I hide or re-size the Event Calendar in a CiviCRM Dashboard?
I'm using CiviCRM 5.25 and Drupal 7.

I've created two Views in Drupal and added them as Dashlets to my CiviCRM Dashboard.

After adding those, I now see an Event Calendar at the bottom of my Dashboard - which I did not add or enable.

If I remove the two added Dashlets, the Event Calendar goes away.

The Event Calendar is the entire screen width, and more, and it makes the two Dashboard columns much narrower and forced to the left of the Dashboard, leaving a large amount of whitespace on the right. Screenshot below.

So - how do I disable the Event Calendar from appearing on my Dashboard, and/or re-size it to not create undesired whitespace on the right? I have looked in the docs and elsewhere here and don't find any explanation of how this could happen, or how to change it.

Thanks!

Before:

After:

# Answer
> 0 votes
OK, so I had installed the Event Calendar extension from osseed, but had not installed the required JQuery Update module for Drupal. When I did that, and re-enabled the Event Calendar extension, now Event Calendar does not appear at the bottom of my CiviCRM Dashboard when adding a Dashlet based on a Drupal View.

I still have the whitespace problem when adding a Dashlet based on a Drupal View, but I think that *may* be a setting to adjust in the Display settings for that View.

---
Tags: civievent, drupal-views, dashboard, dashlet
---


title: Sending invoices to members in bulk

text:
# Question
Title: Sending invoices to members in bulk
Is there any solution that can bulk email invoices to the members? For example a combination of the two features below:

Email invoice: https://docs.civicrm.org/user/en/latest/contributions/invoicing/

Mass mailings: https://docs.civicrm.org/user/en/latest/email/mass-mailings-using-civimail/

# Answer
I have found the issue. It was a known issue of civicrm v5.25. Here is the details: https://github.com/civicrm/civicrm-core/pull/17164/files

"Invoices - print and email" has been appeared in the dropdown menu after implementing the patch. Thanks everyone for the help
> 3 votes

# Answer
Yes.

* Go to **Contributions menu » Find Contributions** (or use Advanced Search with *Display Results as* set to **Contributions**.
* Search for the invoices you want to send by setting *Contribution Status* to **Pending** and any other criteria you need.
* Select "all X records" or manually select the invoices you want to send from the result.
* From the *Actions* menu, select **Invoices - print or email**.

See attached screenshot.
> 2 votes

---
Tags: civimail, contributions, invoice
---


# Question
Title: Which payment processors support refunding payments from within CiviCRM?
My client is certain that they have, in the past, initiated credit card refunds from within CiviCRM, such that it triggers an actual refund of the credit card payment to the cardholder.

In contrast, in their current setup, using Stripe, they must initiate the refund within their Stripe console at stripe.com and then ensure the refund is properly recorded in CiviCRM.

For which payment processors (Authorize.net, iATS, etc.), if any, would a staff user be able to initiate the refund process from within CiviCRM, without needing to separately initiate the refund in their payment processor terminal/console?

# Answer
I know it's not helpful for figuring out who did it in the past, but in-app refunds is a feature that Alice has written for TSYS that we'll be including in the next major version. There is some coordination that needs to happen on how CiviCRM treats refunds, because if the payment hasn't settled, you're really voiding it rather than refunding it. CiviCRM doesn't distinguish the two, so we want to be sure that reconciliation isn't a mess.
> 4 votes

# Answer
CiviCRM Core doesn't support refunds via the payment processor extension/plugin, though there's a detailed spec here:

https://lab.civicrm.org/dev/financial/-/wikis/Refunds-via-payment-processors

Any payment processor that implemented it would be on their own, and I haven't heard of such a thing.

There seems to be a PaymentProcessor.refund API in CiviCRM Core which I think is a first step.

I can confirm that the iATS Payments plugin doesn't support refunds from CiviCRM and doesn't have any immediate plans to change that.

How do I process a refund for a credit card payment via iATS?
> 3 votes

# Answer
Been using CiviCRM since late v3....it absolutely boggles my mind this isn't core functionality but it just isnt possible.....
> 0 votes

---
Tags: payment-processor, refund
---


title: Merging only records in a Group

text:
# Question
Title: Merging only records in a Group
i wanted to just merge records that are in a Group. But the documentation seems to indicate that the records that will be flagged as duplicates will be from where at least 1 of the record is within the Group. How can i configure to flag pairs where both records are from the designated Group? Thanks.

CiviCRM: 5.10.4 WordPress Version: 5.0.9

# Answer
> 2 votes
A way to achieve this would be to create an ACL that limits records to that group and then assign that ACL to a user and they will only see those records to dedupe.

# Answer
> 1 votes
If @Andy Burns answer does not work for any reason I would try putting all duplicate candidates in a new (smart) group and then search contacts that has to be in *both* groups: the original and the new – ordered by name or display name.

---
Tags: duplicate-contacts
---


# Question
Title: CiviCRM Membership data to external Database
I'm new to Joomla, CiviCRM and PHP, but looking to help with a small project. I'm looking to grab the members data from CiviCRM and transfer (or update if users already exist) into a different database of an application (that is stand alone code/not in joomla) for users that are members of both. After the migration of existing users is done, then going forward this process would be done when a new user registers as a member in the CiviCRM. A couple questions:

1. Should I write PHP/SQL to go directly against the CiviCRM Contact table or utilize the CiviCRM API?
2. Where do I write the actual code to connect to the CiviCRM database, write SQL to grab data, etc.? Is it a Joomla extension, a function when the user clicks Submit in the member registration form in CiviCRM? I'm still trying to figure out the Joomla platform and how coding works in it.
3. Anything else I should consider?

Thanks so much!

# Answer
> 3 votes
You should always use the API and only if there is no other route grab the SQL table. You do not need to connect to any CiviCRM database when using the API. You can find more information on the API in the Developer Guide: https://docs.civicrm.org/dev/en/latest/api/

Do I understand correctly that you want to send data to your other application when a membership is created in CiviCRM? If this is the case you should develop a CiviCRM extension using the post hook. You can find more information on developing an extension in the Developer Guide: https://docs.civicrm.org/dev/en/latest/extensions/ and also on the post hook: https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_post/.

The post hook will allow you to retrieve all the membership data from the $objectRef object when you catch an $objectName Membership and $op create (or probably edit as well when a membership changes?).

Alternatively you can pull data from CiviCRM using the API if synchronizing every hour/day is enough?

# Answer
> 0 votes
Maybe this is helpful to connect CiviCRM users/Joomla users ? I have used it in the past. https://www.joomlapolis.com/blog/nick/18849-joomla-to-civicrm-user-sync-2-1-1-released

---
Tags: contacts, api, extension, joomla, database
---


# Question
Title: Do Stripe webhooks work for refunds issued via the Stripe website?
Webhooks are working fine for Stripe payments. Refunds issued for events that were cancelled are showing an error on the Stripe account. Should refunds issue calls to Civi for the transaction?

# Answer
Refunding from the Stripe side has worked for some time.
> 1 votes

---
Tags: stripe, refund, webhook
---


# Question
Title: How to find all activities generated by one schedule reminder?
As the question says - **How to find all activities generated by one schedule reminder ?**

You can find all activities of type 'scheduled reminder'. This shows a few fields, but not which instance of the scheduled reminder created this activity. You can filter the search by activity 'subject' and 'details', but I don't think the instance of the scheduled reminder is in there (?).

Using the api (explorer) you can get a lot of relationships to activities, like 'medium' and 'parent', but I'm not sure what these mean. Is that information (which scheduled reminder created this activity) lost ?

# Answer
The easy answer is to search by the email's subject line - but I'm assuming you have multiple scheduled reminders with the same subject line.

You can find details in the `civicrm_action_log` table. The `action_schedule_id` is the ID of the scheduled reminder. That said, I can't 100% recall how this handles sending the same reminder multiple times - either because repetition is enabled, or because the same membership comes up for renewal multiple times. Hopefully neither of those apply to you, but if they do, you may need to compare that data against the activity log to see how it's represented.
> 1 votes

---
Tags: api, scheduled-reminders, advanced-search
---


# Question
Title: Manually add Membership Renewal Activity
For one client I have a member who anticipated his renewal and for a reason I don't understand, CiviCRM didn't add a 'membership renewal' activity. Because I have rules triggered by this new activity I need to manually add it. I know how to manually remove but is there a way to manually add this activity. I only found Meeting and Phone call.

Any ideas

regards,

Guillaume

# Answer
> 1 votes
You can use the API Explorer to do this (**Support menu » Developer » APIv3 Explorer**) but this isn't recommended unless you can test it first on a test site. Select **Activity** as your entity and **Create** as your action, you should be able to pick any Activity Type from there.

It's also worth trying to figure out why the activity wasn't created to begin with, otherwise it may happen again.

---
Tags: activity
---


# Question
Title: How can I show multiple repeating custom field values in a single cell on a report?
We woud like a simple contact report which, rather than showing a single row for each custom field (with repeating contact name on each row), shows a single row for the contact and shows all the repeating custom data in a single cell.

Could anyone share a simple reporting template example that does this?

# Answer
> 1 votes
I've investigated this myself, but haven't had to do it yet. Broadly, you would use the `GROUP_CONCAT` MySQL function. You can see examples of this being used on core contribution reports for displaying multiple credit card types for contributions paid in multiple installments with different cards.

I also have a fork of the salutations extension that provides a UI for exporting multiple-record custom groups as part of an export. Instead of putting all the data in a single cell, I break the data out into multiple columns, but all on the same row.

You could also use the SQL Tasks extension to generate the report using pure SQL, if you need a quicker solution and can trade off some configurability.

---
Tags: civireport
---


# Question
Title: How can I prevent CiviMail Bounce Processing from moving mail to "ignored" folder?
Since we have activated CiviMail Bounce Processing, our team members don't see regular incoming mail (which has nothing to do with CiviCRM) in the inbox of our main org account anymore. The problem is that CiviCRM moves all email from the inbox to a subfolder CiviMail/ignored, thereby removing the mail from the inbox where our team usually would look.

Is there a way to prevent CiviCRM from moving "ignored" messages and just leave them in the inbox? Or what is the intended workflow here? Do we have to set up a separate e-mail account that will just be used for sending out mass mailing from CiviCRM with a reply-to to our "normal" contact email?

# Answer
Bounce processing assumes that the account is dedicated to handling bounces. You don't want to mix bounce handling with a mailbox used by users.

See all of the "CiviMail setup" chapter in the System Administrator Guide and in particular:
> 2 votes

---
Tags: civimail
---


# Question
Title: How to access civicrm_subscription_history in Views?
I'd like to extract contacts who have been added to a certain group for a given date or date range. This information is in table civicrm\_subscription\_history which is included in my Drupal settings file, along with every other CiviCRM table. But this table doesn't appear in Views - it seems that only a selection of CiviCRM tables appear, and I don't understand why this is. How can I access this table in Views? (I know this is perhaps more of a Views question but hopefully it's also enough of a CiviCRM question!) Using Civi 5.24.5 & Drupal 7.69

# Answer
Views CiviCRM Expose Tables might work for you.
> 2 votes

---
Tags: drupal, drupal-views
---


# Question
Title: Custom Search with No Input Parameters just Results
I'd like to create a custom search that goes directly to the results page, without asking the user for input parameters (the WHERE clause is hard-coded, no need for inputs). How can I do this?

# Answer
> 2 votes
Save the result of the custom search as a smart group, then the user can just search using that smart group name.

# Answer
> 0 votes
Create a menu item for your custom search and add `&force=1` to its URL.

Eg: http://example.org/civicrm/contact/search/custom?csid=1&reset=1&force=1

---
Tags: custom-search
---


title: Mosaico templates don't work

text:
# Question
Title: Mosaico templates don't work
I have loaded Civicrm on a localhost. Everything works fine. I enabled the Mosaico extension. To do this I installed an ImageMagick plugin on Wordpress, enabled the Flexmailer and the Shoreditch theme. When I go into Mosaico, I get the message Warning Experimental Beta Version Use with Care. The templates are also blank as per the illustration. Is there a way around this issue?

# Answer
The problem was caused by installing an old version of Mosaico. I installed the orginal extension version and not the latest one. I uninstalled the old extension and installed the proper one.
> 2 votes

---
Tags: email, mailing, mosaico
---


# Question
Title: Webform CiviCRM activity - prevent email notification
Is there a way to **not** send an email when Webform CiviCRM creates an activity?

I want to create an activity for admin purposes but not that the new member receives an email.

I don't see an option to prevent this?

Any ideas?

# Answer
> 4 votes
Yes (I *think* this should work for an Activity created via a webform as well?) - go to Administer -\> Customize Data and Screens -\> Display Preferences

https://\[your-website\]/civicrm/admin/setting/preferences/display?reset=1&civicrmDestination=%2Fcivicrm%2Fadmin%2Fconfigtask%3Freset%3D1

and see

"Do not notify assignees for" and select the Activities to exclude.

"These activity types will be excluded from automated email notifications to assignees."

It's odd that it is under Display Preferences IMHO, but there it is.

UPDATE: Just want to point folks to Peter's and Karin's answers as well. So, depending on your use case, you may want to have the email not be sent either through an Activity created via your particular webform, or, through the Civi settings. My answer will apply to all activities that you have selected, which you may not want.

# Answer
> 4 votes
CiviCRM Core will (by default) send out an E-mail to Contacts who are assigned to an Activity.

You can change this setting to Not send out any E-mail to Contacts who are assigned to an Activity and handle Email notifications on a per webform level. If you need an example of that - let me know.

Here is an example: On the form: E-mail + a checkbox (without label: and text: Send E-mail Notification:

Conditionals -\> if the checkbox is checked -\> show the E-mail field:

In Webform -\> E-mails -\> send E-mail to Component -\> E-mail:

Of course you can make this as complicated as you want (also e.g. by including Activity Status and/or Activity Type in the Conditionals.

# Answer
> 2 votes
You can specify which Types of Activities send emails via CiviCRM but setting it will affect Activities created both in CiviCRM directly and via webforms.

I can flesh this out if this solution would work.

---
Tags: webform-civicrm, email
---


# Question
Title: Does CiviCRM work with Drupal 8 and how can I help?
What is the status of CiviCRM working with Drupal 8? And how can I help in terms of testing or funding this development?

# Answer
UPDATE: Please head to this Q+A for documentation information / links or head direct to the installation documentation

There is a channel on Chat here
> 20 votes

# Answer
Active Development has restarted on the Drupal 8 version. It is possible to get it installed now, although it takes a slight different process than with Drupal 7.

Assuming you have Drupal 8.2.5 installed.

Download and install the 8.x-3.x-dev version of the Libraries module: https://www.drupal.org/project/libraries

Download the most recent version of CiviCRM 4.7 from CiviCRM.org , or if your a little more adventurous, the master branch from github.

Put CiviCRM core in /libraries folder of your Drupal 8 installation.

Delete the Drupal 7 modules from this download which would now be in /libraries/civicrm/drupal . You can delete the whole drupal folder.

Next get the 8.x-master branch of the CiviCRM Core drupal module

Put this in your standard Drupal 8 modules directory, /modules/civicrm

Now log in to your Drupal 8 site and goto /admin/modules

Enable CiviCRM, but do it by itself, do not enable any other modules at the same time.

This will attempt to install CiviCRM in the same database as your Drupal installation.

You will get some feedback if it has issues connecting to the database. If you get a "cannot connect to database" message, try the one line temporary fix documented in this issue: https://issues.civicrm.org/jira/browse/CRM-19835 There will be a fix soon for this issue

Now you will have CiviCRM installed. In my experience, there was an error at the root civicrm page at path /civicrm , due to something with the Dashboard. To fix this you must simply set the default organization and email address and From Name here: civicrm/admin/domain?action=update&reset=1

After that, all the CiviCRM pages will load, you will see the CiviCRM menu.

There are some issues that are being worked out, but at this point CiviCRM is usable. We need people testing this and documenting issues so that they can be resolved.
> 14 votes

# Answer
See answer from @jackrabbithanna for current status.

tl;dr : It's not yet production ready, and the list of things you can help on is in JIRA at https://issues.civicrm.org/jira/browse/CRM-17652?filter=23012 . Additionally, please create additional issues and mark Label them drupal-8.

Building on the previous work, Allen Shaw made some progress recently with assistance from Tim, Coleman and Nicolas at the Vail Colorado sprint hosted by Nicolas Ganivet.

The navigation menu and dashboard are now working.

For convenient assistance with developing, it is now possible to install D8 with CiviCRM using

civibuild create d8-master

Also, the new cividev environment builder ( https://github.com/civicrm/civicrm-buildkit-vagrant/blob/master/README.md) can configure a VirtualBox using Vagrant on your local machine with this or other builds supported by buildkit.

However, various issues need to be resolved before CiviCRM can be run in production with D8 as of mid-February 2016.
> 9 votes

# Answer
You could also try the RoundEarth distribution: https://gitlab.com/mydropwizard/roundearth-drops-8

> "RoundEarth is a template for building a website for a nonprofit organization, based on Drupal 8 and CiviCRM."
> 6 votes

# Answer
I think the current easiest and best way is to:

1. Install Drupal 8 with the recommended composer template

composer create-project drupal/recommended-project my\_site\_name\_dir
2. Add CiviCRM:

cd my\_site\_name\_dir
composer require civicrm/civicrm-asset-plugin:^5.25 civicrm/civicrm-drupal-8:^5.25 civicrm/civicrm-packages:^5.25
3. Enable CiviCRM in the modules list
> 3 votes

---
Tags: drupal, drupal-8
---


# Question
Title: CiviBooking Wordpress Error on Adding Resouces
Civicrm 5.25.0 and Wordpress 5.3.3

When I go to Add a Resource I get

Fatal error: Access level to CRM\_Admin\_Form\_Resource::$\_id must be public (as in class CRM\_Admin\_Form) in xxx/uploads/civicrm/ext/uk.co.compucorp.civicrm.booking/CRM/Admin/Form/Resource.php on line 40

Is there a way around it?

# Answer
> 2 votes
You could just remove the `protected $_id = NULL;` line in uploads/civicrm/ext/uk.co.compucorp.civicrm.booking/CRM/Admin/Form/Resource.php, since it's defined in the base class as public.

---
Tags: wordpress, civibooking
---


# Question
Title: Warning "mismatched contact IDs" when trying to update existing individual records
I'm updating the CiviCRM database with a list of individual records. All these individuals exist already in the database, but I need to create the link with existing organisations. I've already done that for other imports and I use the relationship "Employee of" -\> "Organisation Name (match to contact)" to do the relationship between the individual and its organisation. When trying to import, I receive a message telling me that all my records have "mismatched contact IDs" and that no record has been updated. Any idea ? Thank you

More information on this : I have tested with a single record "Patrick Test" on the demo database - https://dmaster.demo.civicrm.org/ with the same import scheme and all went well. I make the same with one record on my CiviCRM and I receive an error. I really do not know what to do now...

The exact error message for this one record test is : *Total Rows 1 Total number of rows in the imported data. Mismatched Rows (skipped) 1 Rows with mismatched contact IDs... (NOT updated). \< » Download Mismatched Contacts Total Contacts 0 Total number of contact records created or modified during the import.* The generated csv error file tells me that "Related contact required fields are missing." Which fields ? I really dont know...

Many thanks for you help

# Answer
> 1 votes
If the column that is your Org ID has any blanks you will get this warning. It doesn't mean anything failed in the import. It is basically saying 'you had a row where you said to create a related org but you didn't give me an ID for that row so i am just letting you know'

# Answer
> 2 votes
Apart the right answer of Pete (thanks) here above, I have found something else who explain the problem I have : I had two relationships in my import scheme: the one for the "Member of" relation and the second for the "Employee of" relation. This cannot work... and I need to make two separate imports for each relation.

---
Tags: import, relationships, data-import
---


# Question
Title: what happened to saving reports as dashlets?
A long while ago, you could save reports as dashlet.

On the latest version of civi (both clean installs and upgrades), the report still has the option "Available for Dashboard?" but it doesn't seem to have any effect, or any way to save as a new report/dashlet (my memory is a bit unclear on how it worked in the past)

Am I missing something obvious or has that feature gone missing?

# Answer
> 3 votes
It's working fine on 5.25.0 for me.

EDIT: You must go to Access tab \> enable *Available for Dashboard* \> select *actions* drop down \> select *Save*. (Not view results).

That appears to be the misstep. Clicking *View Results* does not save the report. There is valid reason for having the save v. view results functionality as there is the permission *save report criteria*. Sometimes you may want someone to access and modify the report for one time use but not save it for everyone.

Then On CiviCRM Home, you have to click *Configure Your Dashboard* and drag it into dashlet area.

# Answer
> 1 votes
I am experiencing the same issues. I've tried it on two client sites after another client reported the issue on their site with the same result. I also tried it on this demo site: https://demo.circle-interactive.co.uk. These are 5.24.x sites. Since two people reported they were able to generate new dashlets using 5.25.0, I updated one of the sites to see if this would solve the issue. It did not.

1. Choose a report that does not have a dashlet already. Contribution Report - Top Donors.
2. On the Top Donors \>\> Access tab, I enable **Add to My Reports** and **Available for Dashboard** and **Refresh Results**.
3. Under **Reports \>\> My Reports**, Top Donor is not shown. Nor is it shown as a dashlet when I view **Configure Your Dashboard**.

What I did discover, is that the values for **Add to My Reports, Available for Dashboard, Limit Dashboard Results and Cache dashlet for** are not being saved. (I've tried this in two browsers: Chrome and Firefox updated to the latest versions.)

1. Load a report and view the Access tab.
2. Update values for **Add to My Reports, Available for Dashboard, Limit Dashboard Results and Cache dashlet for** fields and click **Refresh Results/View Results**.
3. Return to the Access tab for the same report and verify that the values are what you set in step 2.
4. Load a different Civi page (such as Reoprt Listing)
5. Return to the Access tab for the report where you set you new values. In my case they have reverted to my original values. And no dashlet/no my reports.

What's also strange is that I thought that using the browser's Developer Tool reload option **Empty Cache and Hard Reload** would revert the values; but it did not. It seems that this only happens when I load a new Civi page and then return to the Access tab of the report.

---
Tags: civireport, dashlet
---


# Question
Title: I can see Age in a Contact Summary. How can I add Age to a Profile?
I can see Age for a contact in the Contact Summary screen, which is not a built-in field, but is apparently calculated from the Birth Date field. I can add the Birth Date field to a Profile. How can I also/instead display the calculated Age as a Profile field?

# Answer
> 2 votes
Good questions. As you say, age is a calculated field and afaik won't be available.

Either you need to adjust how the DoB field is displayed which may be via js.

Only other option, for display purposes, would be to build (you guessed it) a Drupal view block and show that instead.

---
Tags: contacts, custom-fields, profile, drupal-views
---


# Question
Title: Displaying the full state or County name in Profile Listing
I'm sure there is a simple solution to this that I'm missing - I have a custom profile that I'm setting up as a searchable directory that has a number of address fields displayed in the results Country, State, city. - Home Country, State, city. - Work Country, State, city. - Other

The State field is returning as an abbreviation, or in the case of somewhere like France - a number. Is there a way to display- (or retrieve given the returned value ) the full state name?

# Answer
Turns out the solution was one I'd be staring at for a while.

Administer \> Localisation \> Address Settings

change the Address Display for state/ province from {contact.state\_province} to {contact.state\_province\_name}
> 2 votes

---
Tags: addresses, directory
---


title: Problems with testing mailing

text:
# Question
Title: Problems with testing mailing
I am trying to test a mail out before sending. When I send test to my personal email address, it says sent but doesn't arrive. When I send test to a company email address it says sent but doesn't arrive. When I send to a gmail address, it says sent and DOES arrive! Any ideas what might be the problem? I'm on a deadline! Thanks

# Answer
In addition to JonG's answer, I would definitely recommend using a professional SMTP Gateway. For instance we pay 10€ / month for 10 000 emails with great deliverability. They will provide SPF and DKIM entries for your Domain and your emails will reach their recipients. In CiviCRM you just need to set the parameters and you're done!
> 1 votes

# Answer
There is likely one of two things wrong, but both will need a technical administrator to resolve. This answer will necessarily be technical; I'm sorry if that's not immediately helpful. The good news is that assuming one of these is true, it will only affect users at your organization.

Most likely, you're on G Suite or other hosted mail service, and your SPF record doesn't include your CiviCRM SMTP host. You will need to know what your CiviCRM SMTP host is (check **Administer menu \> System Settings \> Outgoing Email**). If your setting is "mail" or "sendmail", the server is the same as the one CiviCRM is hosted on. Make sure it's in your SPF record (or create an SPF record if you don't have one). G Suite and other hosted mail providers block mail that appears to be within the organization otherwise because it's a common tactic of spammers.

The other possibility is that Mail is being relayed to a misconfigured SMTP server. I've seen this with Postfix - in `/etc/postfix/main.cf`, check your `mydestinations` setting and ensure your organization's domain name isn't listed there.
> 0 votes

---
Tags: civimail, email
---


# Question
Title: Deprecated function CRM_Core_Config::defaultContactCountry error
In the ConfigandLog directory, this error is produced every minute:

```
[warning] Deprecated function CRM_Core_Config::defaultContactCountry, use CRM_Core_BAO_Country::defaultContactCountry.
Array
(
    [civi.tag] => deprecated
)

```

What configuration do I have wrong that is making this occur?

On Civi 5.24.4 / Wordpress 5.4.1. Multisite.

# Answer
> 0 votes
Looks like cividesk.normalize based on the pastebin.

Actually looks like it's already patched in master: https://github.com/cividesk/com.cividesk.normalize/commit/221562b8bf4fb56fe677eaaf9122d3af5c3cce74

---
Tags: error, tags, configandlog
---


# Question
Title: What payment processors work with WordPress Caldera and CiviCRM, and which of those work with recurring
This is an open-ended question to pull together information as folk develop more options. The below answer is based on snips from https://chat.civicrm.org/civicrm/pl/4refrsqotib9tf9gyrscffk8my

# Answer
In response to a question about WP, Caldera and iATS play nicely and do recurring

danaskallman said:

> no, it's either of these two add-ons as of now stripe and authorize. iATS isn't an option for payment processors so it would need to be developed likely.

Andrei said:

> the official CF payment add-ons support PayPal Express and Pro, Authorize.net, Dwolla, Stripe, Braintree, and PayFast gateways.
>
> As @danaskallman mentioned CFC integrates with Stripe and Authorize, with integrates I mean that it calculates/updates the payment fees and transaction ids, etc.
>
> And recurring contributions are not currently integrated/supported.

agileware\_justin said:

> we developed a Caldera payment processor for eWAY Rapid API (eWAY payment gateway) - this hasn't been published OSS yet.
>
> Can confirm, Caldera CiviCRM is missing recurring contribution feature.
> 2 votes

# Answer
Just an update on this question, Agileware have developed the following for Caldera Forms:

* EWAY payment gateway integration for Caldera Forms using EWAY Rapid 3.0 API
* CiviCRM recurring payments for memberships and donations using Caldera Forms
* Ability to view and update stored credit cards using Caldera Forms

This work will / is and be publicised in a series of blog posts on https://civicrm.org/news and https://blog.agileware.com.au

You can contact us directly if you are interested in these features at https://agileware.com.au/contact
> 2 votes

---
Tags: wordpress, payment-processor, recurring-contributions, caldera-forms
---


# Question
Title: Restore from trash not working. No related log entries
We've got a contact deleted to trash today. On restore civi notification states success but the contact remains in trash. The log is silent.

# Answer
> 4 votes
It looks like it happened in 5.25. I've added a lab ticket: https://lab.civicrm.org/dev/core/-/issues/1784

Will be fixed in 5.26.0.

---
Tags: core, 5.25
---


# Question
Title: will a scheduled reminder be sent after the specified date, if it hasn't been sent before?
Suppose, on a running installation, I add a reminder to be sent 1 day after membership end date.

Will this reminder suddenly be sent to all members that expired eg. in the last year, because they didn't receive it earlier ? Or is it sent only to exactly those members that have a membership end date between 24 and 48 hours ago ?

# Answer
From memory scheduled reminders will only look into things within a 24hr window. So if you said 1 day after then the max it will go back is 2 days (1day + 24hrs). This was a while ago though, although I don't think things have changed.
> 1 votes

---
Tags: scheduled-reminders, cron-job
---


# Question
Title: roundearth/drupal-civicrm-project fails to give me the CiviCRM menu
I now have an automated process working to deploy CiviCRM on drupal based on roundearth/drupal-civicrm-project. Only issue is, `drush en civicrm` fails to expose the CiviCRM menu. What step might I be missing please?

The status page is reporting no errors. /var/log/apache2/domain.tld-errors.log shows only the server restarts. No errors in the UI.

But neither is their any CRM menu when I browse to the CRM icon on the drupal menu. In fact, the browser times out and I am left with a white-screen-o-death. $drupal\_root/vendor/civicrm, includes:

civicrm-asset-plugin
civicrm-core
civicrm-cxn-rpc
civicrm-drupal-8
civicrm-packages
composer-downloads-plugin

composer.json includes:

```
# grep civicrm ../../../composer.json
    "name": "roundearth/drupal-civicrm-project",
        "civicrm/civicrm-asset-plugin": "^1.0",
        "civicrm/civicrm-drupal-8": "^5.24.0",
        "civicrm/civicrm-packages": "^5.24.0",
        "civicrm-asset": {
            "path": "web/libraries/civicrm",
            "url": "/libraries/civicrm"

```

**UPDATE**

Applying the changes recommended by KarinG below, led me to these errors:

```
{{ updated }}
System Status: Error

    Cron Not Running
    Incorrect Resource URL
    Configure Default Mailbox
    Complete Setup
    Old files

```

which led me to run this change:

```
/usr/bin/find files/ -type d -exec /bin/chown www-data: {} \

```

and then browsing to /civicrm, in the logs I am now seeing all these 404's:

```
"GET /modules/contrib/civicrm/icons/ffffff/CiviCRM.svg HTTP/1.1" 200 1738 "http://domain.net/sites/default/files/css/css_G_ErrXTnzvbnVhgrkNAnad6AbqucEyPg7r7hEbARnbY.css
"
"GET /civicrm HTTP/1.1" 200 10772 "http://domain.net/admin/modules"
"GET /libraries/civicrm/bower_components/jquery/dist/jquery.min.js HTTP/1.1" 404 758 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/jquery-ui/jquery-ui.min.js HTTP/1.1" 404 758 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/lodash-compat/lodash.min.js HTTP/1.1" 404 760 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/datatables/media/js/jquery.dataTables.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.mousewheel.min.js HTTP/1.1" 404 770 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/select2/select2.min.js HTTP/1.1" 404 750 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.form.min.js HTTP/1.1" 404 758 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.timeentry.min.js HTTP/1.1" 404 768 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.blockUI.min.js HTTP/1.1" 404 764 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/jquery-validation/dist/jquery.validate.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/Common.js?r=00RaD HTTP/1.1" 404 706 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.ui.datepicker.validation.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.datepicker.js?r=00RaD HTTP/1.1" 404 722 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.ajax.js?r=00RaD HTTP/1.1" 404 710 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.tableHeader.js HTTP/1.1" 404 764 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/wysiwyg/crm.wysiwyg.js?r=00RaD HTTP/1.1" 404 734 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.notify.min.js HTTP/1.1" 404 762 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/smartmenus/dist/jquery.smartmenus.min.js HTTP/1.1" 404 788 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/smartmenus/dist/addons/keyboard/jquery.smartmenus.keyboard.min.js HTTP/1.1" 404 842 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.menubar.js?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.drupal8.js?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.optionEdit.js?r=00RaD HTTP/1.1" 404 722 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/jquery/jquery.dashboard.js?r=00RaD HTTP/1.1" 404 742 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/noconflict.js?r=00RaD HTTP/1.1" 404 714 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/datatables/media/css/jquery.dataTables.min.css HTTP/1.1" 404 802 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/crm-i.css?r=00RaD HTTP/1.1" 404 708 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/jquery-ui/themes/smoothness/jquery-ui.min.css HTTP/1.1" 404 800 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/font-awesome/css/font-awesome.min.css HTTP/1.1" 404 782 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/select2/select2.min.css HTTP/1.1" 404 752 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/civicrm.css?r=00RaD HTTP/1.1" 404 712 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/d3/d3.min.js HTTP/1.1" 404 731 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/crossfilter2/crossfilter.min.js HTTP/1.1" 404 769 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/dc-2.1.x/dc.min.js HTTP/1.1" 404 743 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/dashboard.css?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"GET /sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css HTTP/1.1" 200 554 "http://domain.net/civicrm"
"GET /sites/default/files/css/css_nbayFeUgbTUEetzUj2zWWfaIftpVnyzHwC413fE8LR0.css HTTP/1.1" 200 6844 "http://domain.net/civicrm"
"GET /sites/default/files/css/css_7yTt9sM3dRkmf7FbAO2SqjGlA2u0qFHoXWeDQTeRulA.css HTTP/1.1" 200 11162 "http://domain.net/civicrm"
"GET /core/themes/bartik/logo.svg HTTP/1.1" 200 4044 "http://domain.net/civicrm"
"GET /core/assets/vendor/modernizr/modernizr.min.js?v=3.3.1 HTTP/1.1" 200 2406 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/datatables/media/js/jquery.dataTables.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/jquery-validation/dist/jquery.validate.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.ui.datepicker.validation.min.js HTTP/1.1" 404 798 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/Common.js?r=00RaD HTTP/1.1" 404 706 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.datepicker.js?r=00RaD HTTP/1.1" 404 722 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.ajax.js?r=00RaD HTTP/1.1" 404 710 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/wysiwyg/crm.wysiwyg.js?r=00RaD HTTP/1.1" 404 734 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.tableHeader.js HTTP/1.1" 404 764 "http://domain.net/civicrm"
"GET /libraries/civicrm/packages/jquery/plugins/jquery.notify.min.js HTTP/1.1" 404 762 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/smartmenus/dist/jquery.smartmenus.min.js HTTP/1.1" 404 788 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/smartmenus/dist/addons/keyboard/jquery.smartmenus.keyboard.min.js HTTP/1.1" 404 842 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.menubar.js?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.optionEdit.js?r=00RaD HTTP/1.1" 404 722 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/crm.drupal8.js?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/jquery/jquery.dashboard.js?r=00RaD HTTP/1.1" 404 742 "http://domain.net/civicrm"
"GET /libraries/civicrm/js/noconflict.js?r=00RaD HTTP/1.1" 404 714 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/crm-i.css?r=00RaD HTTP/1.1" 404 708 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/font-awesome/css/font-awesome.min.css HTTP/1.1" 404 782 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/datatables/media/css/jquery.dataTables.min.css HTTP/1.1" 404 802 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/jquery-ui/themes/smoothness/jquery-ui.min.css HTTP/1.1" 404 800 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/civicrm.css?r=00RaD HTTP/1.1" 404 712 "http://domain.net/civicrm"
"GET /libraries/civicrm/bower_components/select2/select2.min.css HTTP/1.1" 404 752 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/d3/d3.min.js HTTP/1.1" 404 731 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/crossfilter2/crossfilter.min.js HTTP/1.1" 404 769 "http://domain.net/civicrm"
"GET /libraries/civicrm//bower_components/dc-2.1.x/dc.min.js HTTP/1.1" 404 743 "http://domain.net/civicrm"
"GET /libraries/civicrm/css/dashboard.css?r=00RaD HTTP/1.1" 404 716 "http://domain.net/civicrm"
"POST /contextual/render HTTP/1.1" 200 3751 "http://domain.net/civicrm"
"GET /core/themes/stable/images/core/icons/bebebe/pencil.svg HTTP/1.1" 200 675 "http://domain.net/sites/default/files/css/css_nbayFeUgbTUEetzUj2zWWfaIftpVnyzHwC413fE8LR0.css"

```

**UPDATE #2**

Thanks again, KarinG. That project does not seem to be working for me at the moment. Any guidance?

```
~/sandbox $ composer create-project drupal/recommended-project my_client_crm
Creating a "drupal/recommended-project" project at "./my_client_crm"
The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection timed out
https://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date

```

# Answer
> 2 votes
Sounds like perhaps you’re missing -\>

https://gitlab.com/roundearth/drupal-civicrm-project/-/issues/2

But I do recommend you change how you install D8/CiviCRM to as described in here: Downstream Git/Composer Issues

# Answer
> 0 votes
my weeks-long missing civicrm-menu and related issues has finally been resolved through the creation of symlinks. This article provided some guidance: https://colorfield.be/blog/install-civicrm-5-with-drupal-8-using-lando

Studying the 404 errors in the network tab of `inspect element` provided clues. The use of mlocate identified appropriate targets for the links.

The symlinks got created in a new path, called web/libraries/civicrm, and now include: ang, bower\_components, core, css, js, packages.

Not completely sure that all of those links are necessary, but I have higher priorities than sorting out if I can live without any of these.

The results looks like this:

```
root@efc9c26-00257:/opt/local/path_to/drupal/web/libraries/civicrm# ls -lht
total 0
lrwxrwxrwx 1 root root 53 May 28 19:52 bower_components -> ../../../vendor/civicrm/civicrm-core/bower_components
lrwxrwxrwx 1 root root 40 May 28 19:50 ang -> ../../../vendor/civicrm/civicrm-core/ang
lrwxrwxrwx 1 root root 36 May 28 19:44 core -> ../../../vendor/civicrm/civicrm-core
lrwxrwxrwx 1 root root 40 May 28 19:42 packages -> ../../../vendor/civicrm/civicrm-packages
lrwxrwxrwx 1 root root 40 May 28 19:42 css -> ../../../vendor/civicrm/civicrm-core/css
lrwxrwxrwx 1 root root 39 May 28 19:42 js -> ../../../vendor/civicrm/civicrm-core/js

```

Nothing I did to set the ResourceURL, either in the browser UI (crippled by the absence of its javascript libraries) or in civicrm.settings.php seemed to help much.

---
Tags: civicrm-home, drupal-8, composer
---


# Question
Title: CiviMail cron job unable to find: civicrm.config.php, built with: roundearth/drupal-civicrm-project
My next issue is this:

attempts to push out a civilmailing result, as reported by /civicrm/admin/joblog, with this error: 'API permission check failed for Group/get call', . . . 'insufficient permission: require access CiviCRM'

From my $drush\_context path, I had run sudo -u www-data ../../../vendor/civicrm/cv/bin/cv api Job.execute Same result without the sudo as www-data.

Full log entry:

```
Details

Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}

Full message:

> Finished execution of Mailings scheduler with result: Failure, Error
> message:  API permission check failed for Group/get call; insufficient
> permission: require access CiviCRM

```

My build put the following in place:

```
# grep -v ^# /var/spool/cron/crontabs/www-data
*/5 * * * * /home/drupal/lib/sh/civimail_cron_job.sh process_mailing
*/15 * * * * /home/drupal/lib/sh/civimail_cron_job.sh fetch_bounces

```

Running that manually results in:

```
# sudo -u www-data /bin/bash /home/drupal/lib/sh/civimail_cron_job.sh process_mailing
PHP Warning:  require_once(civicrm.config.php):
failed to open stream: No such file or directory
in /opt/local/my_client/drupal/vendor/civicrm/civicrm-core/bin/cli.class.php on line 245

PHP Fatal error:  require_once():
Failed opening required 'civicrm.config.php' (include_path='.:/usr/share/php')
in /opt/local/my_client/drupal/vendor/civicrm/civicrm-core/bin/cli.class.php on line 245

```

closest I come to finding that file on this container is:

```
# locate civicrm.config.php
/opt/local/my_client/drupal/vendor/civicrm/civicrm-drupal-8/civicrm.config.php.drupal
/opt/local/my_client/drupal/web/modules/contrib/civicrm/civicrm.config.php.drupal

```

```
# drush user:information mailprocess
 User ID       :  23
 User name     :  mailprocess
 User mail     :  mailprocess@uat.db.georgiagreenparty.net
 User roles    :  authenticated
                  civimail_role
 User status   :  1

```

```
# drush role:list civimail_role
 Permission
 access CiviCRM
 access CiviMail
 view all contacts

```

**UPDATING this script's listing**

```
# cat /home/drupal/lib/sh/civimail_cron_job.sh

#!/bin/bash

CMD=$1
CWD=/opt/local/my_client/drupal/vendor/civicrm/civicrm-core
requirements='-d require ./web/core/includes/bootstrap.inc -d require ./web/core/lib/Drupal/Core/Session/AccountInterface.php'
PHP="/usr/bin/nice -n19 /usr/bin/php ${requirements}"
PARAMS='-j -s default -u mailprocess -p asecretpassword -e Job -a '

cd $CWD; $PHP bin/cli.php $PARAMS $CMD

exit 0

```

**UPDATE**

```
l# CIVICRM_SETTINGS=`pwd`/web/sites/default/civicrm.settings.php /bin/bash ./civimail_cron_job.sh
 + CMD=
 + CWD=/opt/local/my_client/drupal
 + requirements='-d require ./web/core/includes/bootstrap.inc -d require ./web/core/lib/Drupal/Core/Session/AccountInterface.php'
 + PHP='/usr/bin/nice -n19 /usr/bin/php -d require ./web/core/includes/bootstrap.inc -d require ./web/core/lib/Drupal/Core/Session/AccountInterface.php'
 + PARAMS='-j -s default -u mailprocess -p verysecret -e Job -a '
 + cd /opt/local/my_client/drupal
 + /usr/bin/nice -n19 /usr/bin/php -d require ./web/core/includes/bootstrap.inc  -d require ./web/core/lib/Drupal/Core/Session/AccountInterface.php vendor/civicrm/civicrm-core/bin/cli.php -j -s default -u mailprocess -p verysecret -e Job -a
PHP Fatal error:  Uncaught Error: Class 'Drupal\Core\Session\AccountInterface' not found in /opt/local/my_client/drupal/web/core/includes/bootstrap.inc:106
Stack trace:
#0 {main}
  thrown in /opt/local/my_client/drupal/web/core/includes/bootstrap.inc on line 106
 + exit 0

```

or to highlight the issue, here:
**Uncaught Error: Class 'Drupal\Core\Session\AccountInterface' not found**

line 106 of bootstrap.inc, reads:

```
const DRUPAL_ANONYMOUS_RID = AccountInterface::ANONYMOUS_ROLE;

```

2,738 mentions of this function in the code base, not sure what more I must do to get my code to find it.

```
/opt/local/my_client/drupal# grep -R 'AccountInterface' . | wc -l
2738

/opt/local/my_client/drupal# grep -R 'AccountInterface' web/ | wc -l
1365

```

**Further UPDATE**

As for testing the use of cv here, running this:

```
# vendor/civicrm/cv/bin/cv api job.execute
{
    "is_error": 0,
    "version": 3,
    "count": 1,
    "values": 1
}

```

is yielding the following in the logs at /civicrm/admin/joblog:

```
Date    Job Name    Command/Job Status/Additional Information
2020-06-01 01:32:26
Summary
Finishing scheduled jobs execution.
2020-06-01 01:32:26 Mailings scheduler
Entity: job Action: process_mailing
Summary
Finished execution of Mailings scheduler with result: Failure, Error message: API permission check failed for Group/get call; insufficient permission: require access CiviCRM
Details

Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}

Full message:
Finished execution of Mailings scheduler with result: Failure, Error message: API permission check failed for Group/get call; insufficient permission: require access CiviCRM

2020-06-01 01:32:26 Mailings scheduler
Entity: job Action: process_mailing
Summary
Starting execution of Mailings scheduler
Details

Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}

Full message:
Starting execution of Mailings scheduler

2020-06-01 01:32:26
Summary
Starting scheduled jobs execution

```

*leading me to wonder how it is I get cv to run with my mailprocess user, which has these missing permissions?*

**UPDATE #3**

Thank you, HomoTechsual, for the --user and --cwd switches.
Had missed those.
Now using this invocation:

```
/usr/bin/nice -n19 /usr/bin/php \
    -d require ./web/core/includes/bootstrap.inc \
    -d require ./web/core/lib/Drupal/Core/Session/AccountInterface.php \
    /opt/local/my_client/drupal/vendor/civicrm/cv/bin/cv api job.execute \
    --cwd=/opt/local/my_client/drupal \
    --user=mailprocess

```

and getting this error message:

```
PHP Fatal error:  Uncaught Error: Class 'Drupal\Core\Session\AccountInterface' not found in /opt/local/my_client/drupal/web/core/includes/bootstrap.inc:106

```

**UPDATE #4**

This invocation now returns a result code of 0.
And still I see no evidence that it ran my civimail,
in the browser UI, at /civicrm/mailing/browse/unscheduled,
nor in the logs at /civicrm/admin/joblog.

```
/usr/bin/nice -n19 /usr/bin/php \
    -d require /opt/local/my_client/drupal/vendor/autoload.php \
    /opt/local/ggp_crm/drupal/vendor/civicrm/cv/bin/cv api job.execute \
    --cwd=/opt/local/ggp_crm/drupal --user=mailprocess

```

My script now reads:

```
#!/bin/bash
set -x

CMD=$1
CWD='/opt/local/my_client/drupal'
CV="${CWD}/vendor/civicrm/cv/bin/cv"
CIVIMAIL_USER='mailprocess'
requirements="-d require ${CWD}/vendor/autoload.php"
PHP="/usr/bin/nice -n19 /usr/bin/php"
ARGS="--cwd=${CWD} --user=${CIVIMAIL_USER}"

cd ${CWD}; ${PHP} ${requirements} ${CV} api job.execute ${ARGS}
exit "$?"

```

# Answer
You should run CV commands from the root of the website (especially on Drupal 8/9 - where support isn't as well tested for "pathing" - i.e finding the correct files to bootstrap CiviCRM).

If your website lives in `/var/www/civicrm` that's the directory you should be in when running CV commands (ideally!). You may find that being in `/var/www/civicrm/web` or `/var/www/civicrm/web/modules` works but chances are it'll confuse the pathfinding logic!

To run commands as a specific user you should append `--user=USERNAME` to the end of the command string.

To run commands via cron you should use the absolute path to CV, your site and PHP.

**For example:**

`/usr/bin/php /usr/local/bin/cv api job.execute --cwd=/var/www/civicrm --user=admin`
> 3 votes

---
Tags: civimail, cron
---


title: Membership state deceased

text:
# Question
Title: Membership state deceased
Can anyone please explain why a membership state Deceased exists (along with the contact's state)? Is there a use case where the membership is Deceased, but the contact is not?

# Answer
> 1 votes
I wouldn't have thought that just a membership would be deceased. As for logic, I've always made the assumptions that it's a safeguard from 'accidentally' soliciting membership renewals.

---
Tags: civimember
---


# Question
Title: How to update preferred language depending on a custom field in imported contacts?
I have imported hundreds of contacts having a custom field called "Langue" in set "ocsr" and having two possible values, 'F' and 'N'. I want to transfer this information into the field preferred language, with values 'fr\_FR' and 'nl\_NL'.

I suppose it is possible to do it in one Mysql operation, but I don't find where the custom field value is stored:

```
update civicrm_contact set preferred_language = 'fr_FR' where ... ocsr::Langue ... = 'F'

```

Any hint would be appreciated.

# Answer
> 1 votes
It will be in a table called something like `civicrm_value_ocsr_12` and the fieldname will look something like `langue_57`. You want to join on the `entity_id` column, e.g.

`update civicrm_contact c left join civicrm_value_ocsr_12 v ON v.entity_id = c.id set c.preferred_language = 'fr_FR' where v.langue_57='F';`

(I haven't tested that, just writing out the theory - I always get mixed up trying to get the right syntax for joins in an update statement.)

---
Tags: custom-fields, mysql
---


# Question
Title: Can CiviCRM be integrated with a VoIP system?
Who's done it and what advice do you have?

# Answer
> 1 votes
The closest we have in our docs is integration w/ SMS as per: https://docs.civicrm.org/user/en/latest/sms-text-messaging/set-up/

This documents the integration w/ Twillio and Clickatell.

At the extension level, you'd find a few here: https://civicrm.org/extensions?title=&body\_value=phone&field\_extension\_civi\_use\_target\_id=214&status=All&field\_extension\_ready\_value=All

You probably want to play around with the value in the description field (I've got "phone" in there). There are maybe 6 or so extensions that provide some level of integration w/ external systems.

The best advice is probably to narrow down the scope of your question, and focus on what you are trying to achieve rather than a general question about technology that can be used for various different purposes. "Integration" is primarily a word for sales and in real life can mean many different things.

# Answer
> 0 votes
having the same question by now Not done yet, but will check http://docs.bigbluebutton.org/ and other open source gateways (+asterisk etc)

---
Tags: phone, voip
---


# Question
Title: CiviCRM 4.7 - Showing Empty home page in wordpress editor
I installed CiviCRM 4.7.31 in WordPress for one of my testing purpose. After i activating the CiviCRM plugin, CiviCRM is proving a blank interface. Can i why the menus are not appearing and how should i resolve it ?

My currect PHP version is 7.2.24 and Wordpress version 5.4.1

These are the output of the console

```
Some cookies are misusing the recommended “sameSite“ attribute 4
This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”. admin.php
The script from “http://localhost/wordpress/wp-admin/admin.php?page=CiviCRM&q=civicrm/ajax/l10n-js/en_US&r=iLhO1” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type.

```

`SyntaxError: expected expression, got '<'`

# Answer
> 1 votes
Short answer: that third line from your console means your page is failing to load some javascript that it (probably) requires to display properly.

You might be able to test this theory by adding "&q=civicrm/admin" to your url and see if it shows something.

My best guess is that your civicrm 'assets' (css/js) aren't being loaded properly due to some base url settings.

---
Tags: wordpress
---


# Question
Title: My cronjob fails to run my Civimail queue. What am I missing here?
This invocation now returns a result code of 0.
And still I see no evidence that it ran my civimail,
in the browser UI, at /civicrm/mailing/browse/unscheduled,
nor in the logs at /civicrm/admin/joblog, nor in my inbox.

I've been struggling with this issue for a moment now.
Sorting through these issues, to get to this point is documented here:
CiviMail cron job unable to find: civicrm.config.php, built with: roundearth/drupal-civicrm-project

```
/usr/bin/nice -n19 /usr/bin/php \
    -d require /opt/local/my_client/drupal/vendor/autoload.php \
    /opt/local/my_client/drupal/vendor/civicrm/cv/bin/cv api job.execute \
    --cwd=/opt/local/my_client/drupal --user=mailprocess

```

My script now reads:

```
#!/bin/bash
set -x

CMD=$1
CWD='/opt/local/my_client/drupal'
CV="${CWD}/vendor/civicrm/cv/bin/cv"
CIVIMAIL_USER='mailprocess'
requirements="-d require ${CWD}/vendor/autoload.php"
PHP="/usr/bin/nice -n19 /usr/bin/php"
ARGS="--cwd=${CWD} --user=${CIVIMAIL_USER}"

cd ${CWD}; ${PHP} ${requirements} ${CV} api job.execute ${ARGS}
exit "$?"

```

# Answer
Your script is nicely designed for running the civi cron using "cv", quietly in the background. But you want to run it w/ noise so you can debug it.

To start, try running it manually without the last line and see if you get anything. The main script here is "cv" (run as a php script) and the other bits are making sure cv runs with the right arguments. If it's quitting silently, try something simpler, like seeing if you can actually run php and then if you can run cv via php with a simpler argument like "vars:show".

Documentation of cv is here: https://github.com/civicrm/cv
> 2 votes

---
Tags: civimail, cron
---


# Question
Title: Token for Contribution custom field outputting "Array" for a Multi-Select custom field
I created a message template for an email that will be sent to our accounting when an online contribution is made - it has a table and I've inputted tokens that will put in data for the contribution. I have successfully working tokens like {contribution.custom\_44} and {contribution.custom\_43} which are custom fields for contributions, but one of those is a Text field and the other is a regular Select field, but the 3rd one is a Multi-Select with the token {contribution.custom\_45}, but when I test the message, in place of the token it puts "Array" instead of the actual value of that custom field (which is either one or more of the options in the Multi-Select dropdown). I've tried something like {contribution.custom\_45.value} but that didn't work.

Am I missing syntax here? I'm trying to get the values in that Multi-Select/Array, not just the fact that it's an array.

Thanks :)

# Answer
> 1 votes
I found I could get the value I needed by using `contribution.custom_xx[0]`, though I was dealing with a field with only one option.

For multi-select I presume you would need a foreach to output all of the array values, or implode it into a string if you just want the contents as a list. I had tried implode but found I didn't need it, something like this might work `{', '|implode:contribution.custom_xx}`

---
Tags: custom-fields, tokens
---


# Question
Title: How to make one CiviCRM work with Wordpress multisite
My organisation is using CiviCRM on Wordpress. We recently changed the Wordpress installation to be a multi-site network. CiviCRM, the plugin, is now only activiated for the subsite that was the original one. If we were to create new sites that shall also interact with the same CiviCRM database, would we just have to activate the plugin network-wide, or is this precisely what we have to do?

In the end, we want to have forms on each of the different sites and have people enter their details and sign for things, which are then stored in the (same) CiviCRM database.

I know this is a dumb question, but I am just not sure about any of these things and don't want to break anything.

# Answer
> 1 votes
For the multisite integration across websites to work, yes you do need to do what is outlined here. That with some a few enhancement that https://wordpress.org/plugins/civicrm-admin-utilities/, which Christian noted above, allows you to connect multiple websites on a WordPress multisite to the same CiviCRM instance.

# Answer
> 0 votes
H Simon,

thanks for sharing your question! If I understand your problem correctly the Form Processor extension (https://civicrm.org/extensions/form-processor) might help you to let different Wordpress sites communicate with the only CiviCRM installation?

---
Tags: wordpress, multisite
---


title: Some checkbox settings not applying

text:
# Question
Title: Some checkbox settings not applying
When I change some Civi settings they do not get applied. It seems to be only when deselecting some checkboxes. For example, in Custom Fields I deselect: Collapse this set on initial display. It looks like its saved but when I go back to the settings it is still ticked.

I can tick: Collapse this set in Advanced Search. hit save and it stays ticked. But when I untick the box and it remains ticked.

When I deselect: Is this Custom Data Set active? - The settings are saved.

This also happens in the Edit Scheduled Reminder settings page. I untick: Record activity for automated email and hit save. When I go back into the settings for the reminder it is still ticked.

There are no obvious logs. CiviCRM 5.25.0, Drupal 7.70 , PHP 7.3.18

# Answer
> 2 votes
Thanks for reporting this. I've confirmed it on https://dmaster.demo.civicrm.org and opened an issue: https://lab.civicrm.org/dev/core/-/issues/1794

# Answer
> 2 votes
Have submitted fix for the issue, can you apply patch from here or you will need to wait for 5.27 release.

For Schedule reminder you can apply the fix as a patch from here.

---
Tags: settings
---


# Question
Title: SMTP Socket Error or failed to set sender error....Recipient address rejected: Domain not found; CiviMail keeps trying
When a CiviMail job is running, if one of the recipients has a bad email address, the CiviMail processor throws a set of errors into the Drupal watchdog log, with this message:

SMTP Socket Error or failed to set sender error. Message: Failed to add recipient: ted@jessicommunity.org \[SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM \>\> Global Settings \>\> Outbound Email (SMTP). (code: 450, response: 4.1.2 : Recipient address rejected: Domain not found)\], Code: 10005

There seem to be two problems.

First, the error message seems to be misleading by suggesting that the problem is a misconfiguration in Outbound Email settings, which doesn't offer any settings related to handling unfound domains.

The more serious problem is that CiviMail will keep trying this address every time the CiviMail processor runs, thereby it will never complete the job and fills the watchdog log with error messages. The only way to stop the loop without actually cancelling the mailing job is to delete the relevant row in civicrm\_mailing\_event\_queue (and then put the offending email on hold to prevent it from happening in the future).

It seems like the proper behavior would be for CiviCRM to treat that error like a bounce; but certainly not to keep trying it over and over.

Is that the appropriate behavior?

# Answer
I was just encountering the same problem ...

There is already an issue on github: https://github.com/civicrm/org.civicrm.flexmailer/issues/23

It would be really helpful to get that solved. Currently, as workaround, I am switching to PHP mail(), which I expect to cause problems regarding spam reputation...
> 2 votes

---
Tags: civimail
---