Add contacts by pasting JSON
Create several contacts at once, with their emails, phone numbers, addresses and tags, by pasting a JSON document.
All Contacts has Import JSON below the list. It adds contacts from a JSON document, such as one an assistant writes from meeting notes, an email's attendees or a list of suppliers. Choose Copy the prompt to copy this format with the instructions an assistant needs, give it what you are working from, paste its answer into the box, and choose Import contacts.
Magpie does not read a CSV or vCard file directly. To bring in contacts from a spreadsheet or another address book, give the exported rows to the assistant with the prompt, and import the JSON it writes.
In the mobile app, choose Import JSON from the Contacts action menu and paste the document. The app reports how many contacts were added.
Importing only creates contacts. It does not match or merge anyone already in your contacts; if a document duplicates somebody, delete the copy afterwards.
The whole document is checked before anything is saved. If any part of it does not fit the format below, no contacts are created and the problem is reported with the exact field that caused it.
The document
{
"contacts": [
{ "displayName": "Priya Raman", "companyName": "Northgate Studio" }
]
}
contacts is required, and holds at least one contact.
Each contact
| Field | Type | Notes |
|---|---|---|
displayName |
string, optional | What the contact is listed as. Worked out from the other names if left out. |
prefix |
string, optional | Such as Dr. |
firstName |
string, optional | |
middleName |
string, optional | |
lastName |
string, optional | |
suffix |
string, optional | Such as Jr. |
companyName |
string, optional | |
notes |
string, optional | Markdown. Newlines are kept. |
paymentTermsDays |
number, optional | Days until an invoice is due; used for the due date when invoicing this contact. 0 is due on receipt. |
billing |
object, optional | The billing address used on invoices. See below. |
emails |
array, optional | See below. |
phones |
array, optional | See below. |
addresses |
array, optional | See below. |
tags |
array of strings, optional | Tag names. An existing tag with that name is reused rather than duplicated. |
Every contact needs at least one of displayName, firstName, lastName or
companyName.
billing takes line1, line2, city, state, postalCode and country,
all optional strings. It is one address, not a list, and it is the one invoices
use.
Emails, phones and addresses
{ "email": "priya@example.com", "label": "Work", "isPrimary": true }
{ "phone": "+44 7700 900123", "label": "Mobile" }
{ "label": "Studio", "street1": "12 Market Street", "city": "Hebden Bridge", "postalCode": "HX7 6AA", "country": "United Kingdom" }
| Field | Type | Notes |
|---|---|---|
email |
string, required on an email | Checked as an email address. |
phone |
string, required on a phone | Free text. Not checked. |
street1, street2, city, state, postalCode, country |
strings, optional on an address | An address needs at least street1 or city. |
label |
string, optional | Such as Work, Home or Studio. |
isPrimary |
boolean, optional | The first one in each list is the primary unless another says otherwise. Only one can be. |
A complete example
{
"contacts": [
{
"displayName": "Priya Raman",
"firstName": "Priya",
"lastName": "Raman",
"companyName": "Northgate Studio",
"notes": "Met at the June trade show. Wants a quote for the spring range.",
"paymentTermsDays": 30,
"billing": { "line1": "12 Market Street", "city": "Hebden Bridge", "postalCode": "HX7 6AA", "country": "United Kingdom" },
"emails": [{ "email": "priya@example.com", "label": "Work" }],
"phones": [{ "phone": "+44 7700 900123", "label": "Mobile" }],
"tags": ["supplier", "prospect"]
},
{
"displayName": "Halden Freight",
"companyName": "Halden Freight",
"emails": [{ "email": "bookings@example.com" }],
"tags": ["supplier"]
}
]
}
If an import is rejected for a reason you can't work out, Contact support.
Demander à l’assistance Magpie
Envoyez à l’équipe Magpie une question sur tout ce que cet article n’explique pas.