# Troubleshooting Common Shopify Form Integration Problems

An external integration can stop working for many reasons. A credential may expire, a destination identifier may be incorrect, or an external API may reject a request.

A structured troubleshooting process makes it easier to identify the source of the problem.

## Start with the integration configuration

First, verify the integration settings configured for the relevant form.

Check that:

- The intended integration is enabled.
- Required credentials are present.
- Destination identifiers are correct.
- The merchant's subscription includes the feature.
- The form is using the expected configuration.

A configuration problem should be ruled out before investigating more complex backend behavior.

## Check the server-side processing flow

Cruxtab Contact Form Builder executes merchant-configured integrations through:

`processIntegrations` in `api.forms.submit.js`

Integration settings are configured through:

`app/components/FormIntegrations.jsx`

These are useful starting points when tracing a request from the form configuration to the external API call.

## Investigate provider-specific failures

Different integrations require different checks.

| Integration | Troubleshooting focus |
| --- | --- |
| Google Sheets | Service-account access and spreadsheet range |
| Mailchimp | API credentials and list identifier |
| Klaviyo | Profile creation and list membership |
| HubSpot | Legacy endpoint compatibility and contact data |
| Brevo | API credentials and contact payload |
| Slack | Incoming webhook configuration |
| Zapier / Generic webhook | Destination URL and JSON payload |
| reCAPTCHA | Token verification response |
| GA4 / Facebook Pixel | Script loading and actual events |

## Review error reporting

Cruxtab includes internal Slack error reporting using:

`SLACK_ERROR_WEBHOOK_URL`

Notifications can be muted with:

`SLACK_ERROR_NOTIFICATIONS_ENABLED=false`

The reporting implementation includes unhandled React Router errors and many caught errors.

Check whether the specific integration failure is actually reported. Not every failed external request should be assumed to generate a Slack notification.

## Distinguish form failures from integration failures

A form may save a submission successfully while an external service fails.

When investigating a problem, determine whether:

1. The submission itself failed.
2. The submission was saved but the integration failed.
3. The external service accepted the request but processed it differently than expected.

This distinction helps avoid unnecessary changes to the wrong part of the application.

## Conclusion

Troubleshooting is easier when developers follow the complete path from configuration to server-side execution and external API response.

A provider-specific checklist and useful error diagnostics help reduce investigation time.

Learn more about [Cruxtab Contact Form Builder](https://apps.shopify.com/cruxtab-form-builder).
