Mutations

companyAddContacts#

Type: CompanyAddContactsPayload

Adds contacts to a company.

For example:

mutation CompanyAddContacts($companyId: ID!, $contactIds: [ID!]!) {
companyAddContacts(
input: { companyId: $companyId, contactIds: $contactIds }
) {
company {
contacts {
nodes {
id
}
}
}
errors {
message
path
}
}
}
companyAddContacts(
input: CompanyAddContactsInput!
): CompanyAddContactsPayload

Input fields#

companyCreate#

Type: CompanyCreatePayload

Creates a company.

For example:

mutation CompanyCreate($customFields: [CustomFieldInput!]) {
companyCreate(input: { customFields: $customFields }) {
company {
id
}
errors {
message
path
}
}
}
companyCreate(
input: CompanyCreateInput!
): CompanyCreatePayload

Input fields#

companyDelete#

Type: CompanyDeletePayload

Deletes a company.

For example:

mutation CompanyDelete($companyId: ID!) {
companyDelete(input: { companyId: $companyId }) {
deletedCompanyId
errors {
message
path
}
}
}
companyDelete(
input: CompanyDeleteInput!
): CompanyDeletePayload

Input fields#

companyMerge#

Type: CompanyMergePayload

Merges one company (the source) into another company (the target). The target company is preserved, and the source company is deleted.

The fields in keepFieldIds from the source company will be preserved in the merge, and will be merged into the destination company.

mutation CompanyMerge($companyId: ID!, $targetId: ID!) {
companyMerge(input: { companyId: $companyId, targetId: $targetId }) {
target {
id
}
errors {
message
path
}
}
}
companyMerge(
input: CompanyMergeInput!
): CompanyMergePayload

Input fields#

companyRemoveContacts#

Type: CompanyRemoveContactsPayload

Remove contacts from a company.

For example:

mutation CompanyRemoveContacts($companyId: ID!, $contactIds: [ID!]!) {
companyRemoveContacts(
input: { companyId: $companyId, contactIds: $contactIds }
) {
company {
contacts {
nodes {
id
}
}
}
errors {
message
path
}
}
}
companyRemoveContacts(
input: CompanyRemoveContactsInput!
): CompanyRemoveContactsPayload

Input fields#

contactCreate#

Type: ContactCreatePayload

Creates a contact.

For example:

mutation ContactCreate(
$contactType: ContactType!
$customFields: [CustomFieldInput!]
) {
companyCreate(
input: { contactType: $contactType, customFields: $customFields }
) {
contact {
id
}
errors {
message
path
}
}
}
contactCreate(
input: ContactCreateInput!
): ContactCreatePayload

Input fields#

contactDelete#

Type: ContactDeletePayload

Deletes a contact permanently.

mutation ContactDelete($contactId: ID!) {
contactDelete(input: { contactId: $contactId }) {
deletedContactId
errors {
message
path
}
}
}
contactDelete(
input: ContactDeleteInput!
): ContactDeletePayload

Input fields#

contactMerge#

Type: ContactMergePayload

Merges one contact (the source) into another contact (the target). The target contact is preserved, and the source contact is deleted.

The fields in keepFieldIds from the source contact will be preserved in the merge, and will be merged into the destination contact.

mutation ContactMerge($sourceId: ID!, $targetId: ID!, $keepFieldIds: [ID!]) {
contactMerge(
input: {
sourceId: $sourceId
targetId: $targetId
keepFieldIds: $keepFieldIds
}
) {
target {
id
}
errors {
message
path
}
}
}
contactMerge(
input: ContactMergeInput!
): ContactMergePayload

Input fields#

contactResync#

Type: ContactResyncPayload

Updates a contact.

mutation ContactResync($contactId: ID!, $integrationId: ID!) {
contactResync(input: { contactId: $contactId, integrationId: $contactId }) {
contact {
id
}
errors {
message
path
}
}
}
contactResync(
input: ContactResyncInput!
): ContactResyncPayload

Input fields#

contactUpdate#

Type: ContactUpdatePayload

Updates a contact.

mutation ContactUpdate($contactId: ID!, $contactType: ContactType) {
contactUpdate(input: { contactId: $contactId, contactType: $contactType }) {
contact {
id
}
errors {
message
path
}
}
}
contactUpdate(
input: ContactUpdateInput!
): ContactUpdatePayload

Input fields#

customFieldCategoryCreate#

Type: CustomFieldCategoryCreatePayload

Creates a custom field category.

mutation CustomFieldCategoryCreate(
$name: String!
$type: CustomFieldCategoryType!
$key: String!
) {
customFieldCategoryCreate(input: { name: $name, type: $type, key: $key }) {
errors {
message
path
}
category {
id
}
}
}
customFieldCategoryCreate(
input: CustomFieldCategoryCreateInput!
): CustomFieldCategoryCreatePayload

Input fields#

customFieldCategoryDelete#

Type: CustomFieldCategoryDeletePayload

Deletes a custom field category.

mutation CustomFieldCategoryDelete($categoryId: ID!, $newCategoryId: ID) {
customFieldCategoryDelete(
input: { categoryId: $categoryId, newCategoryId: $newCategoryId }
) {
deletedCategoryId
errors {
message
path
}
}
}
customFieldCategoryDelete(
input: CustomFieldCategoryDeleteInput!
): CustomFieldCategoryDeletePayload

Input fields#

customFieldCategoryUpdate#

Type: CustomFieldCategoryUpdatePayload

Updates a custom field category.

mutation CustomFieldCategoryUpdate($categoryId: ID!, $name: String!) {
customFieldCategoryUpdate(input: { categoryId: $categoryId, name: $name }) {
errors {
message
path
}
category {
id
}
}
}
customFieldCategoryUpdate(
input: CustomFieldCategoryUpdateInput!
): CustomFieldCategoryUpdatePayload

Input fields#

customFieldCreate#

Type: CustomFieldCreatePayload

Creates a custom field.

mutation CustomFieldCreate(
$categoryId: ID!
$key: String!
$name: String!
$icon: CustomFieldIcon
$description: String
$type: CustomFieldType!
$placeholder: String
$isArray: Boolean!
$options: [CustomFieldOptionInput]
) {
customFieldCreate(
input: {
categoryId: $categoryId
key: $key
name: $name
icon: $icon
description: $description
type: $type
placeholder: $placeholder
isArray: $isArray
options: $options
}
) {
customField {
id
}
errors {
message
path
}
}
}
customFieldCreate(
input: CustomFieldCreateInput!
): CustomFieldCreatePayload

Input fields#

customFieldDelete#

Type: CustomFieldDeletePayload

Deletes a custom field.

mutation CustomFieldDelete($customFieldId: ID!, $deleteMode: Boolean) {
customFieldDelete(
input: { customFieldId: $customFieldId, deleteMode: $deleteMode }
) {
errors {
message
path
}
}
}
customFieldDelete(
input: CustomFieldDeleteInput!
): CustomFieldDeletePayload

Input fields#

customFieldOptionDelete#

Type: CustomFieldOptionDeletePayload

Deletes a custom field option.

mutation CustomFieldOptionDelete($customFieldOptionId: ID!) {
customFieldOptionDelete(
input: { customFieldOptionId: $customFieldOptionId }
) {
errors {
path
message
}
}
}
customFieldOptionDelete(
input: CustomFieldOptionDeleteInput!
): CustomFieldOptionDeletePayload

Input fields#

customFieldRemove#

Type: CustomFieldRemovePayload

Removes a custom field from a contact or company.

mutation CustomFieldRemove($customFieldId: ID!, $itemId: ID!) {
customFieldRemove(input: { customFieldId: $customFieldId, itemId: $itemId }) {
errors {
message
path
}
}
}
customFieldRemove(
input: CustomFieldRemoveInput!
): CustomFieldRemovePayload

Input fields#

customFieldRestore#

Type: customFieldRestorePayload

No description

customFieldRestore(
input: customFieldRestoreInput!
): customFieldRestorePayload

Input fields#

customFieldUpdate#

Type: CustomFieldUpdatePayload

Updates a custom field.

mutation CustomFieldUpdate(
$customFieldId: ID!
$categoryId: ID!
$name: String
$icon: CustomFieldIcon
$options: [CustomFieldOptionInput]
) {
customFieldUpdate(
input: {
customFieldId: $customFieldId
categoryId: $categoryId
name: $name
icon: $icon
options: $options
}
) {
errors {
message
path
}
}
}
customFieldUpdate(
input: CustomFieldUpdateInput!
): CustomFieldUpdatePayload

Input fields#

customFieldValuesBulkUpdate#

Type: CustomFieldValuesBulkUpdatePayload

Updates multiple contact or company custom fields in one go.

This is important if, for example, you want to constantly synchronize your contacts with an external data source.

Changes will be proccessed asynchronously in the background.

mutation CustomFieldValuesBulkUpdate(
$items: [SubjectWithCustomFieldsInput!]!
$sync: Boolean!
) {
customFieldValuesBulkUpdate(input: { items: $items, sync: $sync }) {
jid
}
}
customFieldValuesBulkUpdate(
input: CustomFieldValuesBulkUpdateInput!
): CustomFieldValuesBulkUpdatePayload

Input fields#

customFieldValuesUpdate#

Type: CustomFieldValuesUpdatePayload

Creates, updates, or deletes custom field values for a contact or company.

mutation CustomFieldValuesUpdate(
$subjectId: ID!
$customFieldList: [CustomFieldListInput]
) {
customFieldValuesUpdate(
input: { subjectId: $subjectId, customFieldList: $values }
) {
subject {
id
}
}
}

Example request, with payload in the payload.json file:

curl 'https://api.groovehq.com/v2/graphql' -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'Authorization: Bearer TOKEN' -d payload.json

Example payload.json file:

{
"query":"
mutation UpdateCustomFieldValue(
$input: CustomFieldValuesUpdateInput!
) {
customFieldValuesUpdate(input: $input) {
subject {
id
}
errors {
message
path
type
}
}
}
",
"_method":"POST",
"variables": {
"input": {
"subjectId":"co_0000000000",
"customFieldList":[
{
"customFieldIdOrKey":"cf_0000000000",
"value":"My new value"
}
]
},
}
}
customFieldValuesUpdate(
input: CustomFieldValuesUpdateInput!
): CustomFieldValuesUpdatePayload

Input fields#

emailMarketingSubscriptionCreate#

Type: EmailMarketingSubscriptionCreatePayload

No description

emailMarketingSubscriptionCreate(
input: EmailMarketingSubscriptionCreateInput!
): EmailMarketingSubscriptionCreatePayload

Input fields#

emailMarketingSubscriptionDelete#

Type: EmailMarketingSubscriptionDeletePayload

No description

emailMarketingSubscriptionDelete(
input: EmailMarketingSubscriptionDeleteInput!
): EmailMarketingSubscriptionDeletePayload

Input fields#

eventsShopifyCreate#

Type: EventsShopifyCreatePayload

eventsShopifyCreate(
input: EventsShopifyCreateInput!
): EventsShopifyCreatePayload

Input fields#

excludedDomainCreate#

Type: ExcludedDomainCreatePayload

Creates an excluded domain.

mutation($domain: String!) {
excludedDomainCreate(input: { domain: $domain }) {
excludedDomain {
id
domain
}
errors {
message
path
}
}
}
excludedDomainCreate(
input: ExcludedDomainCreateInput!
): ExcludedDomainCreatePayload

Input fields#

excludedDomainDelete#

Type: ExcludedDomainDeletePayload

Deletes an excluded domain.

mutation ExcludedDomainDelete($excludedDomainId: ID!) {
excludedDomainDelete(input: { excludedDomainId: $excludedDomainId }) {
deletedExcludedDomainId
errors {
message
path
}
}
}
excludedDomainDelete(
input: ExcludedDomainDeleteInput!
): ExcludedDomainDeletePayload

Input fields#

excludedDomainUpdate#

Type: ExcludedDomainUpdatePayload

Updates an excluded domain.

mutation($excludedDomainId: ID!, $domain: String!) {
excludedDomainCreate(
input: { excludedDomainId: $excludedDomainId, domain: $domain }
) {
excludedDomain {
id
domain
}
errors {
message
path
}
}
}
excludedDomainUpdate(
input: ExcludedDomainUpdateInput!
): ExcludedDomainUpdatePayload

Input fields#

integrationDelete#

Type: IntegrationDeletePayload

Delete an integration.

Example:

mutation IntegrationDelete($integrationId: ID!) {
integrationDelete(input: { integrationId: $integrationId }) {
deletedIntegrationId
errors {
path
message
}
}
}
integrationDelete(
input: IntegrationDeleteInput!
): IntegrationDeletePayload

Input fields#

integrationDeleteByProvider#

Type: IntegrationDeleteByProviderPayload

Delete an integrations by provider.

Example:

mutation IntegrationDeleteByProvider($provider: IntegrationProvider!) {
integrationDeleteByProvider(input: { provider: $provider }) {
deletedIntegrationIds
errors {
path
message
}
}
}
integrationDeleteByProvider(
input: IntegrationDeleteByProviderInput!
): IntegrationDeleteByProviderPayload

Input fields#

integrationJiraServerUpsert#

Type: IntegrationJiraServerCreatePayload

Update or create a Jira Server integration.

integrationJiraServerUpsert(
input: IntegrationJiraServerCreateInput!
): IntegrationJiraServerCreatePayload

Input fields#

integrationProviderSettingsUpdate#

Type: IntegrationProviderSettingsUpdatePayload

Update settings for all integrations for a specific provider.

For example:

mutation IntegrationSettingsUpdate(
$provider: IntegrationProvider!
$settings: JSON!
) {
integrationSettingsUpdate(
input: { provider: $provider, settings: $settings }
) {
integrations {
nodes {
... on Integration {
provider
settings {
settings
}
}
}
}
settings {
settings
}
}
}
integrationProviderSettingsUpdate(
input: IntegrationProviderSettingsUpdateInput!
): IntegrationProviderSettingsUpdatePayload

Input fields#

integrationSettingsUpdate#

Type: IntegrationSettingsUpdatePayload

Update settings for an integration.

For example:

mutation IntegrationSettingsUpdate($integrationId: ID!, $settings: JSON!) {
integrationSettingsUpdate(
input: { integrationId: $integrationId, settings: $settings }
) {
integration {
... on Integration {
provider
settings {
id
settings
}
}
}
}
}
integrationSettingsUpdate(
input: IntegrationSettingsUpdateInput!
): IntegrationSettingsUpdatePayload

Input fields#

login#

Type: LoginPayload

No description

login(
input: LoginInput!
): LoginPayload

Input fields#

mobileNotificationPreferencesUpsert#

Type: MobileNotificationPreferencesUpsertPayload

No description

mobileNotificationPreferencesUpsert(
input: MobileNotificationPreferencesUpsertInput!
): MobileNotificationPreferencesUpsertPayload

Input fields#

pushTokenClearNotificationCount#

Type: PushTokenClearNotificationCountPayload

pushTokenClearNotificationCount(
input: PushTokenClearNotificationCountInput!
): PushTokenClearNotificationCountPayload

Input fields#

pushTokenCreate#

Type: PushTokenCreatePayload

No description

pushTokenCreate(
input: PushTokenCreateInput!
): PushTokenCreatePayload

Input fields#

uploadPayloadGenerate#

Type: UploadPayloadGeneratePayload

When uploading a new file to s3, you must include all of the payload fields in order, followed by a field, in your POST request.

uploadPayloadGenerate(
input: UploadPayloadGenerateInput!
): UploadPayloadGeneratePayload

Input fields#