---
title: Remote proxy sync mappings
description: Create PingIDM sync mappings to synchronize users between a remote instance and the local instance, then run reconciliation
component: pingidm
version: 8.1
page_id: pingidm:objects-guide:remote-proxy-create-sync-mappings
canonical_url: https://docs.pingidentity.com/pingidm/8.1/objects-guide/remote-proxy-create-sync-mappings.html
llms_txt: https://docs.pingidentity.com/pingidm/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Data Object Model", "Synchronization"]
section_ids:
  remote-proxy-run-recon: Run reconciliation
---

# Remote proxy sync mappings

After you [verify the remote proxy works](remote-proxy-setup.html#remote-proxy-task4-verify), create a sync mapping to synchronize users:

Request

```none
curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--header "Accept-API-Version: resource=1.0" \
--request PUT \
"https://<local-instance-fqdn>/openidm/config/sync" \
--data '{
  "mappings": [
    {
      "name": "remote_to_local_user_sync",
      "source": "external/idm/<remote-instance-name>/managed/user",
      "target": "managed/user",
      "consentRequired": false,
      "properties": [
        { "target": "userName",  "source": "userName" },
        { "target": "givenName", "source": "givenName" },
        { "target": "sn",        "source": "sn" },
        { "target": "mail",      "source": "mail" },
        { "target": "password",  "source": "password" }
      ],
      "policies": [
        { "situation": "ABSENT",    "action": "CREATE" },
        { "situation": "FOUND",     "action": "UPDATE" },
        { "situation": "CONFIRMED", "action": "UPDATE" }
      ],
      "correlationQuery": [
        {
          "linkQualifier": "default",
          "expressionTree": { "any": ["userName"] },
          "type": "text/javascript",
          "file": "ui/correlateTreeToQueryFilter.js"
        }
      ]
    }
  ]
}'
```

To verify the mapping, get the sync configuration from the mapping configuration *(tooltip: You can manage the mapping configuration over REST at the config/sync endpoint, directly in the conf/sync.json file, or in individual conf/mapping-\<mappingName>.json files.)*:

Request

```none
curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Accept-API-Version: resource=1.0" \
--request GET \
"https://<local-instance-fqdn>/openidm/config/sync"
```

## Run reconciliation

After you create and verify the mapping, run a reconciliation to synchronize data across environments:

Request

```none
curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Content-Type: application/json" \
--header "Accept-API-Version: resource=1.0" \
--request POST \
"https://<local-instance-fqdn>/openidm/recon?_action=recon&mapping=remote_to_local_user_sync"
```

Response

```json
{
  "_id": "3d5a82e4-8c91-4d3a-a3c5-b38f8e5c7a21",
  "state": "ACTIVE"
}
```
