

Initial Connection Screen - Simple one-click OAuth 2.0 authorization to link your ClickUp workspace.
Built by Loopstates, ShopMotive connects your WooCommerce store to your ClickUp workspace. It automatically converts WooCommerce orders, customer profiles, refunds, and order notes into ClickUp tasks so your fulfillment, support, and sales teams can manage store operations directly inside ClickUp.
When an order is placed or updated in WooCommerce, ShopMotive captures the event and generates or updates a corresponding task in ClickUp. You can map WooCommerce fields (such as billing details, customer lifetime spend, discount codes, and shipping addresses) to ClickUp custom fields, automatically assign tasks to team members based on order thresholds, and keep order statuses synchronized between both platforms.
Event processing is executed in the background to ensure customer checkouts remain fast and responsive. The plugin connects securely with the ShopMotive Cloud Service to process API handshakes and deliver payloads reliably without impacting your website’s performance. Full setup guides and tutorials are available on the ShopMotive Documentation Portal.
ShopMotive Connect offers flexible plans to scale with your business requirements. For full plan comparisons, pricing tiers, and quota upgrades, visit the ShopMotive Pricing & Plans page.
Free Plan
Growth Plan
Pro Plan
ShopMotive: CRM Sync for ClickUp utilizes external cloud APIs to manage authentication tokens, decrypt keys, and queue requests safely:
By activating this connector, e-commerce data (order line items, notes, billing addresses, and customer profiles) is securely sent to the ShopMotive Cloud Service and ClickUp APIs via HTTPS to generate tasks.
To guarantee high service reliability, prompt technical support, and prevention of synchronization outages, ShopMotive Connect securely synchronizes specific store administrative metadata with our cloud servers:
All administrative metadata is stored in our secure, encrypted cloud database. This data is utilized solely for customer support, service health monitoring, and system security, and is never shared with third parties. Telemetry data is retained for the lifetime of your integration and is permanently deleted within 30 days of subscription cancellation.
ShopMotive Connect is built with extensibility at its core. You can use standard WordPress filters to customize sync logic:
add_filter( 'shopmotive_should_sync_order', function( $should_sync, $order_id, $order ) {
// Example: Bypass sync if order total is under $10.00
if ( $order && $order->get_total() < 10.00 ) {
return false;
}
return $should_sync;
}, 10, 3 );
add_filter( 'shopmotive_order_payload', function( $payload, $order ) {
// Example: Append a custom checkout field to order payload
$payload['meta_data']['custom_gift_wrap_note'] = get_post_meta( $order->get_id(), '_gift_wrap_note', true );
return $payload;
}, 10, 2 );
add_filter( 'shopmotive_retry_limit', function( $limit ) {
return 5; // Increase retry tolerance to 5 attempts
} );
add_filter( 'shopmotive_api_request_headers', function( $headers, $endpoint ) {
$headers['X-Developer-Partner-Id'] = 'my_partner_key';
return $headers;
}, 10, 2 );
add_filter( 'shopmotive_should_sync_customer', function( $should_sync, $customer_id, $new_data ) {
// Example: Bypass sync for test accounts
if ( isset( $new_data['email'] ) && strpos( $new_data['email'], '@test.com' ) !== false ) {
return false;
}
return $should_sync;
}, 10, 3 );
add_filter( 'shopmotive_customer_payload', function( $payload, $customer_id ) {
$payload['custom_user_segment'] = 'VIP';
return $payload;
}, 10, 2 );
add_filter( 'shopmotive_refund_payload', function( $payload, $refund_id, $order ) {
$payload['refund_reason'] = get_post_meta( $refund_id, '_refund_reason', true );
return $payload;
}, 10, 3 );
add_filter( 'shopmotive_order_note_payload', function( $payload, $note_id, $order ) {
$payload['note_urgency'] = 'high';
return $payload;
}, 10, 3 );
add_filter( 'shopmotive_checkout_payload', function( $payload, $order_id, $order ) {
$payload['cart_hash'] = $order->get_cart_hash();
return $payload;
}, 10, 3 );
add_filter( 'shopmotive_retry_delay', function( $delay, $attempts, $topic ) {
return 10 * $attempts; // Linear backoff of 10s per retry
}, 10, 3 );