This is a WordPress 6.0+ plugin for Gravity Forms to add support for Email Sending through Bird CRM (https://bird.com).
This program is released as-is without support or warranty.
Feel free to make modifications to suit your needs. I welcome Bug Reports and Commits.
If you use this plugin, give it a star so I know it is being used.
When a Gravity Form is submitted:
- Contact will be created with basic fields: first name, last name, email.
- Email will be sent using the Bird CRM Email service, using a selected Email Template from your Bird Template Editor list.
- Set your API Credentials in: Gravity Forms > Settings > Bird CRM;
- Set multiple emails to be sent (ie. one to customer, one to your staff) in: Form > Settings > Bird CRM;
- Auto syncs template list from your Bird account (every 5 minutes) into a Pods Custom Post Type;
- Daily logs are created in:
/wp-content/uploads/gf_birdcrm_logs
.
- This plugin was developed for our needs so some form fields may not be handled properly.
- Current forms fields supported:
- text
- dropdown
- number
- checkbox
- radio
- multiple choice
- consent
- full name
- address
- phone
- date
- time
- file uploads pro (Gravity Forms Perks)
- You may need to add code to support other fields, because the value passed to Bird CRM API may not be in your expected format.
- Form fields must set "Advanced Field Label" using ie.
customer_email
format, so you can reference the field in the Email Template within Bird CRM.
- Gravity Forms plugin (https://gravityforms.com)
- Pods plugin (https://wordpress.org/plugins/pods/)
- Upload plugin to your WordPress website
- Activate plugin
- Install Pods plugin
- Create a Custom Post Type named
email
- Bird CRM plugin settings
- Set "Advanced Field Label" values on the form fields
- Attach an email to your form
- Map your form fields and attachments
- Set conditional logic (optional)
- Setup multiple emails (optional)
- Setup a staff email (optional)
- Edit your Email Template in Bird
- Debugging
This will be used to store/sync a list of available Templates from your Bird CRM account.
Go to: Pods > Add New.
Create a new Custom Post Type name email
(type: Meta
) with the following values:
Go to: Gravity Forms > Settings > Bird CRM
Connect your Bird CRM account by inputing your API credentials and workspace information.
Once connected to the API successfully, click the "Synchronize" button.
ie. customer_email
.
In your Email Template, you use it like this: {{customer_email}}
.
ie. customer_name
(you don't need to name the other fields).
In your Email Template, you use it like this: {{customer_name_first}}
, {{customer_name_last}}
.
ie. customer_address
(you don't need to name the other fields).
In your Email Template, you use it like this: {{customer_address_street_address}}
, {{customer_address_city}}
, {{customer_address_state}}
, {{customer_address_zip_code}}
, {{customer_address_country}}
, etc.
If you want to use a Dynamic Template ID (ie. if your Email Template will change based on user input):
Go to: Gravity Forms > Forms > (Pick a form) > Settings > Bird CRM
Choose one of the two options:
This options allows you to map a form field to your Email Template ID, which can be set as Hidden or Administrative so it isn't visible on your public form, to set the Email Template based on a field value (ie. dropdown value).
For our use-case, we use Gravity Forms Perks Populate Anything plugin (https://gravitywiz.com/documentation/gravity-forms-populate-anything/) to dynamically load the latest Template IDs from our email
custom post type.
This option allows you to select a specific Email Template to always use for this email.
The dropdown will display all the synced Email Templates from your Bird CRM account (if you do not see the latest templates, click the "Synchronize" button on the Gravity Forms > Settings page, or just wait 5 minutes for the scheduled cron task to run).
Now you can map the form fields to determine where the email is sent and which Email Template is used.
Only Email To field is required (First Name and Last Name are optionally, they will appear in the Email To header).
For Email Template, select which field will have the Template ID value of your desired Email Template.
For Email Template, select from the list of Email Templates synced from your Bird CRM account.
If your form has one or more File Upload Fields, you can checkbox each field to include for each email.
If you leave the file upload field unchecked, it will not be attached to the email.
You can set conditions so the email will ONLY send if ALL/ANY conditions are met.
This feature is good if you want to setup email variations, and use a field value to determine which should send.
You can setup multiple emails to send each time a form is submitted.
Or use Conditionals to determine which should send based on a specific field value.
For sending an internal copy of the form to your staff:
- Add a text field to your form, ie.
staff_email
; - Set the "Default Value" with your internal email, ie.
[email protected]
; - Mark "Visibility" as Hidden or Administrative;
- (Optional) Repeat these steps to map a
staff_first_name
andstaff_last_name
to the email header.
When you edit your Email Template in Bird CRM, you can insert custom values into your content by pasting the field keys, ie. {{customer_name_first}}
, {{customer_name_last}}
, etc.
Try submitting your form to see if the email is sent.
If you are having issues with your form, download the daily log file to see the history of what happened, ie. /wp-content/uploads/gf_birdcrm_logs/2025-03-18.log
.
There you can see any error messages, and the contents of the API Request that was sent to Bird CRM, which will show you a list of all the field keys and field values that were sent in the request.