Search.../

createContact( )

Developer Preview

Creates a new contact.

Description

The createContact() function returns a Promise that resolves to the new contact when it is created.

The info parameter object must include a name, phone number, or email address. If all 3 of these parameters are missing, the contact won't be created.

By default, if the call contains an email already in use by another contact, the new contact won't be created. To override this behavior, set allowDuplicates in the options object to true.

Note: Only visitors with Manage Contacts permissions can run this function.

Admin Method

This function requires elevated permissions to run. This function is not universal and runs only on the backend.

Syntax

function createContact(info: ContactInfo, options: CreateContactOptions): Promise<CreateContactResponse>

createContact Parameters

NAME
TYPE
DESCRIPTION
info
ContactInfo

Contact info.

options
Optional
CreateContactOptions

Create contact options.

Returns

Contact.

Return Type:

Promise<
CreateContactResponse
>
NAME
TYPE
DESCRIPTION
contact
Contact

Contact.

Was this helpful?

Create a new contact using a name and email (dashboard page code)

Copy Code
1import { contacts } from 'wix-crm.v2';
2
3/* Sample contact info value:
4 * {
5 * name: {
6 * first: 'John',
7 * last: 'Doe'
8 * },
9 * emails: {
10 * items: [
11 * {
12 * email: 'johndoe1@example.com',
13 * }
14 * ]
15 * }
16 * }
17 */
18
19export async function myCreateContactFunction(info) {
20
21 try {
22 const newContact = await contacts.createContact(info);
23 console.log('Successfully created a new contact:', newContact);
24
25 return newContact;
26 } catch (error) {
27 console.log(error);
28 // Handle the error
29 }
30}
31
32/* Promise resolves to:
33 * {
34 * "revision": 1,
35 * "source": {
36 * "sourceType": "WIX_CODE",
37 * "appId": "151e476a-715e-ec33-db9a-a7ff4d51f70a"
38 * },
39 * "lastActivity": {
40 * "activityDate": "2023-12-24T11:50:46.048Z",
41 * "activityType": "CONTACT_CREATED"
42 * },
43 * "primaryInfo": {
44 * "email": "johndoe1@example.com",
45 * "phone": "6465676359"
46 * },
47 * "info": {
48 * "name": {
49 * "first": "John",
50 * "last": "Doe"
51 * },
52 * "emails": {
53 * "items": [
54 * {
55 * "tag": "UNTAGGED",
56 * "email": "johndoe1@example.com",
57 * "primary": true,
58 * "_id": "37db3bde-83c0-4ca2-8097-88964a2f343b"
59 * }
60 * ]
61 * },
62 * "phones": {},
63 * "addresses": {},
64 * "extendedFields": {
65 * "items": {
66 * "contacts.displayByLastName": "Doe John",
67 * "invoices.vatId": "",
68 * "emailSubscriptions.deliverabilityStatus": "NOT_SET",
69 * "emailSubscriptions.subscriptionStatus": "UNSUBSCRIBED",
70 * "contacts.displayByFirstName": "John Doe"
71 * }
72 * }
73 * },
74 * "_id": "2712ae1d-3f64-46c2-ac3a-94a6c2e29847",
75 * "_createdDate": "2023-12-24T11:50:46.049Z",
76 * "_updatedDate": "2023-12-24T12:50:46.047Z"
77 * }
78 */
79
Create a new contact using a name and email (export from backend code)

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { contacts } from 'wix-crm.v2';
3import { elevate } from 'wix-auth';
4
5/* Sample contact info value:
6 * {
7 * name: {
8 * first: 'John',
9 * last: 'Doe'
10 * },
11 * emails: {
12 * items: [
13 * {
14 * email: 'johndoe1@example.com',
15 * }
16 * ]
17 * }
18 * }
19 */
20
21export const myCreateContactFunction = webMethod(Permissions.Anyone, async (info) => {
22
23 try {
24 const elevatedCreateContact = elevate(contacts.createContact);
25 const newContact = await elevatedCreateContact(info);
26 console.log('Successfully created a new contact:', newContact);
27
28 return newContact;
29 } catch (error) {
30 console.log(error);
31 // Handle the error
32 }
33});
34
35/* Promise resolves to:
36 * {
37 * "revision": 1,
38 * "source": {
39 * "sourceType": "WIX_CODE",
40 * "appId": "151e476a-715e-ec33-db9a-a7ff4d51f70a"
41 * },
42 * "lastActivity": {
43 * "activityDate": "2023-12-24T11:50:46.048Z",
44 * "activityType": "CONTACT_CREATED"
45 * },
46 * "primaryInfo": {
47 * "email": "johndoe1@example.com",
48 * "phone": "6465676359"
49 * },
50 * "info": {
51 * "name": {
52 * "first": "John",
53 * "last": "Doe"
54 * },
55 * "emails": {
56 * "items": [
57 * {
58 * "tag": "UNTAGGED",
59 * "email": "johndoe1@example.com",
60 * "primary": true,
61 * "_id": "37db3bde-83c0-4ca2-8097-88964a2f343b"
62 * }
63 * ]
64 * },
65 * "phones": {},
66 * "addresses": {},
67 * "extendedFields": {
68 * "items": {
69 * "contacts.displayByLastName": "Doe John",
70 * "invoices.vatId": "",
71 * "emailSubscriptions.deliverabilityStatus": "NOT_SET",
72 * "emailSubscriptions.subscriptionStatus": "UNSUBSCRIBED",
73 * "contacts.displayByFirstName": "John Doe"
74 * }
75 * }
76 * },
77 * "_id": "2712ae1d-3f64-46c2-ac3a-94a6c2e29847",
78 * "_createdDate": "2023-12-24T11:50:46.049Z",
79 * "_updatedDate": "2023-12-24T12:50:46.047Z"
80 * }
81 */
82
Create a new contact, full object with options

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { contacts } from 'wix-crm.v2';
3import { elevate } from 'wix-auth';
4
5/* Sample info value:
6 * {
7 * name: {
8 * first: 'John',
9 * last: 'Doe'
10 * },
11 * emails: {
12 * items: [
13 * {
14 * tag: 'UNTAGGED',
15 * email: 'johndoe1@example.com',
16 * _id: '37db3bde-83c0-4ca2-8097-88964a2f343b'
17 * }
18 * ]
19 * },
20 * company: 'Wix',
21 * jobTitle: 'Writer',
22 * phones: {
23 * items: [
24 * {
25 * phone: '6465676359',
26 * countryCode: 'US',
27 * primary: 'true',
28 * tag: 'MOBILE'
29 * }
30 * ]
31 * },
32 * birthdate: '1995-04-25',
33 * locale: 'en-us',
34 * labelKeys: {
35 * items: [
36 * 'custom.contact'
37 * ]
38 * },
39 * extendedFields': {
40 * items: {
41 * custom.nickname: 'Jonny'
42 * }
43 * },
44 * addresses: {
45 * items: [
46 * {
47 * tag: 'HOME',
48 * address: {
49 * addressLine1: '3 Park Ave',
50 * city: 'NY',
51 * subdivision: 'US-NY',
52 * country: 'US',
53 * postalCode: '10010'
54 * }
55 * ]
56 * }
57 * }
58 * }
59 *
60 * Sample options value:
61 * {
62 * allowDuplicates: true
63 * }
64 */
65
66export const myCreateContactFunction = webMethod(Permissions.Anyone, async (info, options) => {
67
68 try {
69 const elevatedCreateContact = elevate(contacts.createContact);
70 const newContact = await elevatedCreateContact(info, options);
71 console.log('Successfully created a new contact:', newContact);
72
73 return newContact;
74 } catch (error) {
75 console.log(error);
76 // Handle the error
77 }
78});
79
80
81/* Promise resolves to:
82 * {
83 * "revision": 1,
84 * "source": {
85 * "sourceType": "WIX_CODE",
86 * "appId": "151e476a-715e-ec33-db9a-a7ff4d51f70a"
87 * },
88 * "lastActivity": {
89 * "activityDate": "2023-12-24T11:50:46.048Z",
90 * "activityType": "CONTACT_CREATED"
91 * },
92 * "primaryInfo": {
93 * "email": "johndoe1@example.com",
94 * "phone": "6465676359"
95 * },
96 * "info": {
97 * "name": {
98 * "first": "John",
99 * "last": "Doe"
100 * },
101 * "emails": {
102 * "items": [
103 * {
104 * "tag": "UNTAGGED",
105 * "email": "johndoe1@example.com",
106 * "primary": true,
107 * "_id": "37db3bde-83c0-4ca2-8097-88964a2f343b"
108 * },
109 * ]
110 * },
111 * "phones": {
112 * "items": [
113 * {
114 * "tag": "MOBILE",
115 * "countryCode": "US",
116 * "phone": "646-567-6359",
117 * "e164Phone": "+16465676359",
118 * "primary": true,
119 * "_id": "ed1d7da0-b4a1-4164-81b7-c49dedc25dd7"
120 * }
121 * ]
122 * },
123 * "addresses": {
124 * "items": [
125 * {
126 * "tag": "HOME",
127 * "address": {
128 * "formatted": "3 Park Ave\nNY, New York 10010\nUnited States",
129 * "addressLine1": "3 Park Ave",
130 * "city": "NY",
131 * "subdivision": "US-NY",
132 * "country": "US",
133 * "postalCode": "10010"
134 * },
135 * "_id": "eeb4e174-fd0f-4ce8-8cac-dc152f284228"
136 * }
137 * ]
138 * },
139 * "company": "Wix",
140 * "jobTitle": "Writer",
141 * "birthdate": "1995-04-25",
142 * "locale": "en-us",
143 * "labelKeys": {
144 * "items": [
145 * "custom.contact"
146 * ]
147 * },
148 * "extendedFields": {
149 * "items": {
150 * "contacts.displayByLastName": "Doe John",
151 * "invoices.vatId": "",
152 * "emailSubscriptions.deliverabilityStatus": "NOT_SET",
153 * "emailSubscriptions.subscriptionStatus": "UNSUBSCRIBED",
154 * "contacts.displayByFirstName": "John Doe",
155 * "custom.nickname": "Jonny"
156 * }
157 * }
158 * },
159 * "_id": "2712ae1d-3f64-46c2-ac3a-94a6c2e29847",
160 * "_createdDate": "2023-12-24T11:50:46.049Z",
161 * "_updatedDate": "2023-12-24T12:50:46.047Z"
162 * }
163 */