Someone asked on the WordPress support forums: "What is the best way to connect Contact Form 7 to Monday CRM? Is a webhook a good approach?"
The reply said it is not possible with CF7's built-in features alone and suggested finding a plugin or writing custom code.
That answer is accurate but leaves the person with no path forward. This post gives you the full picture - how Monday.com's API works, what a webhook approach actually involves, and the simplest way to get CF7 submissions into Monday.com without writing any code.
Why CF7 Does Not Connect to Monday.com Out of the Box
Contact Form 7 is a form builder. It handles displaying your form, validating the fields, and sending you an email when someone submits. It was not built to push data to external services.
Connecting CF7 to Monday.com requires something in the middle that catches the form submission and sends it to Monday's API. That something is either a plugin, a webhook handler, or custom PHP code.
The good news is that Monday.com has a well-documented API and the connection is straightforward once you understand the pieces involved.
How Monday.com Receives Data from External Sources
Monday.com accepts incoming data through its REST API. When you want to create a new item in a Monday board from a form submission, you send a request to Monday's API with the field values mapped to the columns in your board.
Monday.com uses GraphQL for its API, which means you send structured queries rather than simple POST bodies. A basic item creation request looks like this:
POST https://api.monday.com/v2
Authorization: Bearer YOUR_MONDAY_API_TOKEN
Content-Type: application/json
{
"query": "mutation { create_item (board_id: YOUR_BOARD_ID, item_name: \"CONTACT_NAME\", column_values: \"{\\\"email\\\": {\\\"email\\\": \\\"EMAIL\\\", \\\"text\\\": \\\"EMAIL\\\"}}\") { id } }"
}
You get your API token from Monday.com under your profile avatar at the top right, then Admin, then API. Your board ID appears in the URL when you open the board.
This is the call that needs to happen automatically every time someone submits your CF7 form.
Option 1: Use Contact Form to API (Easiest, No Code)
Contact Form to API lets you connect CF7 to Monday.com directly from the WordPress dashboard. You set the Monday API endpoint, add your API token as an Authorization header, and map your CF7 fields to the Monday column values.
When someone submits your form, the plugin sends the data to Monday automatically. A new item appears in your board with the contact's name, email, phone, and any other fields you mapped.
This takes about ten minutes to set up and requires no code. You do not need to write GraphQL queries by hand or manage any webhook URLs. The plugin handles the outbound request and logs the response so you can confirm each submission arrived.
If you are running a business and you need leads going into Monday.com reliably, this is the approach that saves the most time and causes the fewest problems long term.
Option 2: Webhook Approach (More Setup, More Fragile)
The person in the forum asked whether webhooks are a good approach. Technically yes, but it involves more moving parts.
A webhook approach typically means setting up a third-party automation tool like Zapier or Make between CF7 and Monday.com. CF7 sends form data to the automation tool, which then sends it to Monday.
The problem with this approach is the cost and the dependency chain. Zapier charges per task. Make charges per operation. Every form submission uses up credits. If the automation tool has downtime or changes their pricing, your integration breaks or becomes expensive.
There are also more points of failure. The form submits to CF7, CF7 sends to the automation tool, the automation tool sends to Monday. Any of those steps can fail silently.
A direct API connection from CF7 to Monday removes the middle layer entirely.
Option 3: Custom PHP Code
If you are comfortable with PHP, you can write a function that hooks into CF7's submission event and sends data directly to Monday's GraphQL API.
add_action('wpcf7_before_send_mail', 'send_cf7_to_monday');
function send_cf7_to_monday($contact_form) {
if ((int) $contact_form->id() !== YOUR_FORM_ID) return;
$submission = WPCF7_Submission::get_instance();
if (!$submission) return;
$data = $submission->get_posted_data();
$name = sanitize_text_field($data['your-name'] ?? '');
$email = sanitize_email($data['your-email'] ?? '');
$token = defined('MONDAY_API_TOKEN') ? MONDAY_API_TOKEN : '';
$board_id = defined('MONDAY_BOARD_ID') ? MONDAY_BOARD_ID : '';
$column_values = json_encode([
'email' => ['email' => $email, 'text' => $email],
]);
$query = 'mutation { create_item (board_id: ' . $board_id . ', item_name: "' . esc_js($name) . '", column_values: "' . addslashes($column_values) . '") { id } }';
wp_remote_post('https://api.monday.com/v2', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json',
],
'body' => wp_json_encode(['query' => $query]),
'timeout' => 15,
]);
}
Add your token and board ID to wp-config.php:
define('MONDAY_API_TOKEN', 'your-token-here');
define('MONDAY_BOARD_ID', '1234567890');
This works but requires you to maintain the code, update it when your form changes, and handle errors yourself.
Which Approach Is Right for You
If you want leads in Monday.com starting today without writing code, use Contact Form to API. It was built exactly for this kind of CF7-to-CRM connection and handles the API call, authentication, and field mapping from a simple admin interface.
If you already have Zapier or Make and use it for other things, the webhook route adds one more zap or scenario. Expect to pay per submission.
If you are a developer and want full control, the custom PHP approach is clean and maintainable as long as you are comfortable owning it.
Most WordPress site owners who ask "how do I connect CF7 to Monday" are looking for the no-code path. That is Contact Form to API.

























