Skip to content

Synthetic job example

Preview

This feature is not subject to our service terms. Pre-GA features are available as is and might have limited support.

Synthetic job request

Message attributes

modigieJobRequestId = personA_enrichMobile_1

The ID of the job request must be unique within your repository. If your repository creates the job, this request ID becomes the id value of the job resource.

Message data

request-body.json
{
  "payload": {
    "person": {  // (1)!
      "firstName": "John",
      "lastName": "Doe",
      "source": {
        "objectId": "personA",
        "propertyName": "name"
      }
    },
    "emailAddresses": [
      {
        "emailAddress": {
          "userFormat": "jdoe@acme.com"  // (2)!
        },
        "rels": ["business"],  // (3)!
        "source": {  // (4)!
          "objectId": "personA",
          "propertyName": "companyEmail"
        }
      }
    ],
    "employment": {
      "company": {
        "title": "Acme Inc.",  // (5)!
        "source": {
          "objectId": "personA",
          "propertyName": "company"
        }
      }
    },
    "tags": [  // (6)!
      {
        "name": "campaign",
        "value": "2025-09-OUT"
      },
      {
        "name": "billing",
        "value": "00427"
      }
    ]
  }
}
  1. The person for which your application requests the job.
  2. The email address in arbitrary format as provided by your application. For every email address, Modigie will return validated syntax information.
  3. Your application can use rels to specify the relationship of an attribute like this email address to the person. Email addresses, URLs, and phone numbers each have their own possible rels values.
  4. Your application can provide a source reference to the original source of an attribute like this email address. Modigie returns the reference as is.
  5. The target company at which the person presumably works.
  6. The list of custom job tags that your application can attach to each job request for analytical or operational purposes. See Job tags.

Synthetic job response

Message attributes

modigieJobRequestId = personA_enrichMobile_1
This is the request ID that your application used when publishing the request message. If the repository creates the job, this request ID becomes the id value of the job resource.

Message data

The highlighted lines in the job response below show the elements that Modigie has written.

URLs, email addresses, and phone numbers—whether provided by your application as input parameters or appended by Modigie—include validated syntax information. Depending on the job type, some attributes have additional intelligence data. For details, see Job types and Outputs.

response-body.json
{
  "id": "personA_enrichMobile_1",
  "name": "repositories/my-synth-1/jobs/personA_enrichMobile_1",
  "repository": {
    "id": "my-synth-1",
    "name": "repositories/my-synth-1",
    "repoType": "inpubsub",
    "org": {
      "id": "Q8IRqGvOcGG8lt4dWa3e",
      "name": "orgs/Q8IRqGvOcGG8lt4dWa3e"
    }
  },
  "jobType": "enrichMobile",
  "createTime": "2025-04-18T19:25:30.290329Z",
  "updateTime": "2025-04-18T19:25:40.290329Z",
  "deleteTime": null,
  "purgeTime": null,
  "expireTime": null,
  "startTime": "2025-04-18T19:25:32.290329Z",
  "endTime": "2025-04-18T19:25:40.290329Z",
  "priority": 50,
  "status": "completed",  // (1)!
  "reason": null,
  "events": {  // (2)!
    "appendLinkedIn": {
      "code": "appended"
    },
    "verifyEmployment": {
      "code": "verified"
    },
    "appendMobile": {
      "code": "appended"
    },
    "verifyMobile": null
  },
  "payload": {
    "person": {
      "firstName": "John",
      "middleNames": null,
      "lastName": "Doe",
      "source": {  // (3)!
        "objectSystem": null,
        "objectType": null,
        "objectId": "personA",
        "propertyName": "name"
      }
    },
    "emailAddresses": [  // (4)!
      {
        "source": {
          "objectSystem": null,
          "objectType": null,
          "objectId": "personA",
          "propertyName": "companyEmail"
        },
        "rels": [
          "business"
        ],
        "emailAddress": {
          "userFormat": "jdoe@acme.com",
          "normalFormat": "jdoe@acme.com",
          "rfc882Format": "jdoe@acme.com",
          "isDeliverable": true,
          "isSyntaxValid": true
        }
      }
    ],
    "employment": {  // (5)!
      "company": {
        "title": "Acme Inc.",
        "source": {
          "objectSystem": null,
          "objectType": null,
          "objectId": "personA",
          "propertyName": "company"
        },
        "verification": {
          "title": "Acme Inc."
        }
      },
      "employmentEnd": null,
      "position": null,
    },
    "phoneNumbers": [ // (6)!
      {
        "callWindows": [],
        "rating": {
          "score": 89,
          "scoreMax": 100,
          "numberActivity": {
            "code": "high",
            "score": 89
          },
          "numberNameMatch": {
            "code": "high",
            "score": 89
          }
        },
        "phoneType": "mobile",
        "source": null,
        "compliance": null,
        "smsEmailAddresses": [],
        "phoneNumber": {
          "userFormat": "(202) 555-0100",
          "isPossible": true,
          "isValid": true,
          "intlFormat": "+1 202-555-0100",
          "natlFormat": "(202) 555-0100",
          "country": {
            "officialName": "United States of America",
            "num3": "840",
            "alpha3": "USA",
            "title": "United States",
            "alpha2": "US"
          },
          "e164Format": "+12025550100",
          "ituCountryCode": 1
        },
        "rels": [
          "business"
        ]
      }
    ],
    "urls": [  // (7)!
      {
        "rels": [
          "linkedInUser"
        ],
        "url": {
          "userFormat": "https://www.linkedin.com/in/not-a-real-profile/",
          "rfc3986Format": {
            "port": null,
            "hostname": "www.linkedin.com",
            "netloc": "www.linkedin.com",
            "path": "/in/not-a-real-profile/",
            "username": null,
            "scheme": "https",
            "fragment": "",
            "params": "",
            "password": null,
            "query": ""
          },
          "normalFormat": "https://www.linkedin.com/in/not-a-real-profile",
          "isResolvable": true,
          "includesAuthority": true,
          "isSyntaxValid": true,
          "isRemote": true
        },
        "source": null
      }
    ],
    "locations": [  // (8)!
      {
        "formattedAddress": "San Francisco Bay Area, United States"
      }
    ],
    "countries": [  // (9)!
      {
        "title": "United States",
        "alpha2": "us",
        "alpha3": "usa",
        "num3": "840",
        "officialName": "United States of America"
      }
    ],
    "addresses": [],
    "tags": [  // (10)!
      {
        "name": "campaign",
        "value": "2025-09-OUT"
      },
      {
        "name": "billing",
        "value": "00427"
      }
    ]
  }
}
  1. The current status of a job. Your application should only digest the results if the status is "completed". See Life cycle of a job.
  2. If the job status is "completed", your application can consume the events which show the outcomeof each task of a job. See Event codes.
  3. Your application can use the source reference to map results back to the exact database field where it originated from which makes the digestion of results easier. See Event codes.
  4. Email addresses can be both, provided by your application or appended by Modigie. Email addresses contain syntax validation and different formats. Depending on the job type they also may contain intelligence signals. See Rich email address.
  5. The employment object contains properties provided by your application, and with the proper job type, Modigie will verify these properties and may add verified information. See Current employment
  6. Phone numbers can be both, provided by your application or appended by Modigie. Phone numbers contain syntax validation and different formats. Depending on the job type they also may contain intelligence signals. See Rich phone number.
  7. URLs can be both, provided by your application or appended by Modigie. URLs contain syntax validation and different formats. Depending on the job type they also may contain intelligence signals. See Rich URL.
  8. Depending on the job type Modigie may also provide a list of all current locations discovered for the person in this job. See Locations.
  9. Depending on the job type Modigie may also provide a list of all countries discovered for the person in this job.. See Countries.
  10. The list of custom job tags that your application can attach to each job request for analytical or operational purposes. See Job tags.