The String CRM

Description

The String CRM connects WordPress and WooCommerce with the String CRM platform while also providing a native WordPress form builder.

Core capabilities:

  • Build forms directly in WordPress and store submissions locally.
  • Optionally send successful form submissions to String as CRM submissions.
  • Map WordPress content such as products, doctors, cars, courses, or other post types to String Products or Services.
  • Map WooCommerce order statuses to String Lead Journey stages and statuses.
  • Synchronize WooCommerce customers to String contacts/leads.
  • Synchronize each WooCommerce order as a separate String Submission while reusing the same String client when email/phone matches.
  • Attach mapped product/category context and order details such as total, currency, payment method, billing/shipping summary, notes, coupons, and line items.
  • Automatic create/update synchronization with rate-limit-aware retry and backfill handling.
  • Arabic/RTL and English/LTR WordPress admin support.

A String account is optional for local form collection. String External Partner API credentials are required only when remote synchronization features are enabled by an administrator.

External service: String

This plugin can connect to the String service at https://production.thestring.net after an authorized WordPress administrator configures String External Partner API credentials or enables a synchronization feature that requires them.

Depending on the features enabled, the plugin may send:

  • String External Partner client credentials to obtain an API access token.
  • WordPress form definitions and selected routing/catalog identifiers.
  • Form submissions and the fields configured by the administrator, including selected Branch/Product values, source/tracking data, and uploaded attachments when enabled.
  • Selected WordPress or WooCommerce content mapped to String Product/Service fields, including names, descriptions, pricing, SKU/stock, URLs, categories, currencies, relationship IDs, and stable integration identifiers.
  • WooCommerce workflow/status mappings used by String Lead Journey synchronization.
  • WooCommerce customer identity and billing contact details.
  • WooCommerce order details including order status, total, currency, payment method, billing/shipping summary, customer note, coupon codes, and line-item names.

The plugin also retrieves String account/catalog data needed for configured integrations, such as forms, branches, products, services, sources, categories, currencies, stages, and statuses.

Service website: https://thestring.net/
Privacy policy: https://thestring.net/privacy-policy/

No String API connection is made until an authorized administrator configures the connection or enables a synchronization feature that requires it. If the administrator changes the API URL in Connection settings, requests are sent to that configured HTTPS endpoint instead.

Privacy

The String CRM stores form submissions in the WordPress database. Stored information can include submitted values, source URL, an irreversible hash derived from the visitor IP address, assignment information, synchronization status/error details, and timestamps. Accepted file uploads are stored in the WordPress uploads directory.

When String synchronization is enabled, configured submission and integration data may also be transmitted to String as described above. The plugin adds suggested text to WordPress’s Privacy Policy Guide so site owners can document this processing.

Uninstalling the plugin removes String connection credentials, Content Sync settings, and plugin-owned Content Sync post metadata. Form and lead/submission database tables are intentionally retained to avoid silently deleting business records.

Installation

  1. Install and activate The String CRM.
  2. Open The String CRM in WordPress admin to create a form.
  3. Add a form to a page using its generated [string_form id="123"] shortcode.
  4. Optional: open The String CRM -> Connection and enter your String External Partner API URL, Client ID, and Client Secret.
  5. Optional: enable form synchronization or configure Content Sync for WordPress/WooCommerce data.

FAQ

Do I need a String account?

No for local WordPress form collection. A String account and External Partner API credentials are required only for features that synchronize data with String.

Does the plugin send visitor data to String automatically after activation?

No. Remote synchronization requires an administrator to configure the String connection and enable the relevant feature.

Can I build forms directly in WordPress?

Yes. The plugin includes a form builder, stores submissions locally, and can optionally send successful submissions to String.

Can I sync WordPress content such as doctors, cars, courses, or products?

Yes. Content Sync can map selected WordPress post types and fields to String Products or Services, depending on the mapping configured by the administrator.

Does Content Sync support WooCommerce?

Yes. WooCommerce Products can be mapped to String Products. Customers and orders can also be synchronized when their mappings are enabled.

How are WooCommerce orders synchronized?

Each order resolves its customer using billing email and normalized phone. Existing String clients are reused when matched; otherwise a Contact can be created first. Each WooCommerce order is stored as its own String Submission, so repeat customers can have multiple separate submissions under the same String client.

Can WooCommerce order statuses be mapped to String?

Yes. WooCommerce order statuses can be mapped to String Lead Journey stages/statuses. Orders then use the relevant mapped String status automatically.

Do I need to press Sync Now after every order?

No. Normal operation is automatic. Manual synchronization is intended for initial backfill, repair, or full re-sync.

How are large catalogs handled?

The plugin reads the String Business Partner request limit and processes large synchronization jobs in safe batches. HTTP 429 responses are treated as temporary pauses and are retried rather than permanently failing the item.

What happens to data when I uninstall the plugin?

Connection credentials and Content Sync settings are removed. Form and lead/submission tables are retained intentionally to avoid accidental business-data loss.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“The String CRM” is open source software. The following people have contributed to this plugin.

Contributors

Translate “The String CRM” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.17.22

  • Restyled the public file upload field with a modern drag-and-drop area, upload button, selected-file list, and remove action.
  • Added independent English and Arabic upload title, helper text, and button labels in the form builder.
  • Keep existing file upload limits and String attachment synchronization unchanged.

1.17.21

  • Fixed PHP 8+ file uploads by passing the upload array to wp_handle_upload() by reference-compatible variable.
  • Fixed the WordPress admin menu icon selector so The String CRM icon is visible on all wp-admin screens.
  • Route multipart submission uploads through the WordPress HTTP and Filesystem APIs instead of direct cURL calls.
  • Use prepared identifier placeholders for submission table queries and WordPress file deletion helpers for temporary exports.
  • Escape dynamic admin output and add translator comments for strings with placeholders required by Plugin Check.

1.17.17

  • Enqueue content mapping and notice cleanup scripts through WordPress.
  • Sanitize submission input and restrict filter context to validated form values.
  • Leave duplicate plugin activation choices to administrators.

1.17.16

  • Harden WordPress database queries for Plugin Directory security checks by using prepared identifier placeholders and static query shapes.
  • Fix translation calls so translatable strings use literal text as required by WordPress internationalization standards.

1.17.15

  • Improve HPOS/admin live-order automatic synchronization when an early incomplete save occurs before final billing identity or line items are available.
  • Include billing identity and line-item details in live-order change detection.
  • Retry later hooks in the same request after a failed foreground sync instead of incorrectly treating the failed attempt as complete.
  • Improve support for phone-only guest orders using unambiguous international numbers without a leading plus sign.
  • Keep persistent queues/backfill as retry and repair paths while successful live saves remain deduplicated.

For older release history, see changelog.txt included with the plugin.