ControlShift

Movement has a Controlshift integration which allows you to create Targets in Movement in response to petitions being signed on your ControlShift platform.

This process automatically looks up existing Targets by their email address before creating a new record, to deduplicate your supporter list.

Movement also stores a record of each petition signature, so you can create audiences and send communications to Targets who have signed ControlShift petitions.

To get set up with this integration please get in touch with us at [email protected].

Endpoint

https://{yourdomain}.yourmovement.org/api/control_shift/signature_created_webhook

Event Types

Currently, the webhook endpoint processes the following event type:

signature.created - Triggered when a new signature is added to a petition

Authentication

The webhook requires a shared signing secret for security.

Follow this process to set up your new webhook endpoint and get your signing secret:

  1. Go to your ControlShift platform
  2. Click Settings in the left side bar
  3. Click Integrations in the inner-left side bar
  4. Find Webhooks and click Manage (if you have existing ones) or Add
  5. Click New Webhook Endpoint on the right
  6. Paste your URL in the box
  7. Click Advanced Settings and copy the Signing Secret
  8. Click Save

You will need to send the signing secret to [email protected].

For instructions on generating and managing webhook secrets in ControlShift, please refer to the ControlShift webhook documentation.

Payload Example

{
  "type": "signature.created",
  "data": {
    "id": 645,
    "first_name": "Jennifer",
    "last_name": "Goines",
    "email": "[email protected]",
    "phone_number": null,
    "postcode": "23456",
    "join_organisation": null,
    "created_at": "2015-08-03T13:30:01Z",
    "member": {
      "id": 747,
      "created_at": "2015-08-03T13:30:01Z"
    },
    "petition": {
      "url": "https://{yourdomain}.yourmovement.org/petitions/don-t-destroy-our-park",
      "slug": "don-t-destroy-our-park"
    }
  }
}

Data Processing

When a signature is received, Movement will:

  1. Look up or create a Target based on the email address
  2. Record the petition signature as a Target activity
  3. Update Target details if new information is provided
  4. Track subscription preferences based on the join_organisation field

The integration maintains data consistency by:

  1. Deduplicating Targets based on email address
  2. Preserving existing Target data while updating with new information
  3. Creating an auditable record of petition signatures