CMap logo

Send UK planning applications to CMap

Turn a relevant planning application into a CMap project or lead, with the planning reference stored in externalRef.

CMap is built for architecture, engineering and consultancy practices, so its objects are the ones a practice uses: companies, contacts, leads and projects. Plota brings UK planning applications from 389 council planning portals into one classified, source-linked feed. A practice watching a sector or a region can have each relevant application arrive as a record in CMap, carrying the site address, the consent route and the council’s own page, instead of someone checking portals each morning.

Before you start

  • Get an API key (a free demo key works for testing).
  • Create a saved alert in Plota for the area and categories you want, and note its alert id.

How to connect Plota to CMap

Save the alert that matches your market

In Plota, create a saved alert for the councils and categories your practice works in. A conservation-led practice and a logistics engineer want very different filters, and the alert is where that choice belongs.

Get CMap credentials

CMap documents its API publicly at docs.cmaphq.com. Authentication is OAuth 2.0 against id.cmaphq.com with the scope api_access, using client credentials for unattended work. The live base is api.cmaphq.com and the sandbox is api.cmap-sandbox.com. A customer creates the client under Admin → Users and Security → Client Application Management. CMap’s own documentation says the API is for enterprise clients, or available as an add-on to a lower plan, so check the contract before you build.

Send the tenant id on every call

The API is not tenanted by URL. Every request carries a tenant_id header holding a GUID, and leaving it off returns 403 rather than an obvious error. The tenants your credentials may use come back from GET /v1/Tenants.

Create a project rather than a lead

CMap documents POST /v1/Leads, POST /v1/Companies, POST /v1/Contacts, POST /v1/Activities and POST /v1/Project, the last of which creates a potential project and is singular while the read path is plural. Prefer the project: leads are create-only, with no documented way to read one back, so a planning application stored as a lead cannot be reconciled or checked for duplicates.

Put the planning reference in externalRef

CMap ships a purpose-built external reference field, externalRef, on both lead and project creation. On a project it reads back as ExternalRef through GET /v1/Project/{projectId} and GET /v1/Projects/Updated, so a scheduled reconciliation can match the planning reference and update rather than create a second record. Prefer it over a custom field: custom fields are limited by plan, and externalRef is always there.

Leads are a one-way door

The only documented Leads path is the create. There is no read, update or delete, so anything written as a lead cannot be searched, reconciled or deduplicated through the API. That single fact is the strongest argument for building this on projects instead.

Field mapping

What arrives from Plota, and where it belongs in CMap. Plota field names are the ones in the API reference; every webhook carries them under data.application.

PlotaCMapNotes
referenceexternalRef on the lead or projectReads back as ExternalRef on a project. This is the idempotency key
descriptionProject title, or lead detailsThe council’s own wording
address, postcodeCompany Addresses: address1, address2, townCity, countyState, postcodeAddresses hang off the company, not the project
categoryProject sector by name, or lead sectorId by idProjects take human-readable strings; leads take numeric ids from /v1/Resources/Sectors
date_receivedstartDateISO 8601 date-time
links.plota, links.councilProject customFields, or lead detailsCustom fields depend on the customer’s plan

What teams use this for

Pipeline from the sector you work in

A practice doing school extensions can filter to community and education work across a set of authorities and see each scheme as a project the day it is published.

Watch the areas you want to win work in

Planning records name the agent and the applicant. Watching an area tells a practice where work is coming forward, which is a business development input rather than a guess.

Consent route maps to fee scope

Plota normalises the consent route across councils: full, outline, reserved matters, listed building consent, prior approval and the rest. A record arrives already sorted by the kind of job it is.

Verify deliveries

Each webhook is signed - verify the Plota-Signature header (HMAC-SHA256 over timestamp.body). Full details in the API docs.

CMap integration FAQ

Can I create records in CMap from planning data?

Yes. CMap documents create endpoints for leads, companies, contacts, activities and projects. Plota delivers a signed webhook when an application matches your alert, and your own code or automation platform turns it into the record.

Should I create a lead or a project?

A project, if you want the integration to be safe to re-run. Leads can only be created, never read back, so there is no documented way to check whether you have already sent one. Projects carry ExternalRef through reads and through the updated-records feed.

Does CMap have an opportunity object?

Not in the API. CMap’s marketing uses the word, but the API’s objects are leads and projects, and a potential project is what a pipeline entry is. Build against leads and projects and the naming stays honest.

Does CMap support webhooks?

No, in either direction. Change detection is polling on both sides. Plota’s change feed uses changed_since so a scheduled run only returns records whose content actually moved; CMap’s equivalent is GET /v1/Projects/Updated.

What are the rate limits?

CMap documents 10 calls in progress at once and 300 calls in any 60 seconds, and those limits are per tenant and shared across every integration the customer runs. Your planning sync competes with their accounting sync, so batch the work and respect the Retry-After header on a 429.

Is there a CMap app on Zapier?

No. Zapier’s page for CMap says it has not built an integration, and a similarly named listing there belongs to a different company. The route is CMap’s REST API.

Is it free?

A free Plota demo key covers testing, and live webhook delivery runs on the Starter plan and above. CMap prices its own API access.