docs
EnglishChatigram website ↗Open Chatigram
Recipes

Find a CRM contact before creating a duplicate

Start a deliberate CRM contact lookup with a test email and inspect the result before adding any write action.

Find a CRM contact before creating a duplicate Expand a node to see its configuration

Swipe sideways to explore the workflow branches.

  • TRIGGERManual

    Example configuration

    {}
      • contactLookupExternal API integration

        Example configuration

        {
          "request": {
            "method": "GET",
            "path": [
              {
                "$tag": "Constant",
                "value": "https://business-api.example.invalid/crm/contacts"
              }
            ],
            "headers": [
              {
                "key": "Content-Type",
                "value": [
                  {
                    "$tag": "Constant",
                    "value": "application/json"
                  }
                ]
              }
            ],
            "queryStrings": [
              {
                "key": "email",
                "value": [
                  {
                    "$tag": "Constant",
                    "value": "person@example.com"
                  }
                ]
              }
            ],
            "body": [
              {
                "$tag": "Constant",
                "value": ""
              }
            ]
          },
          "responseHandlers": [
            {
              "$tag": "GetWholeAsString",
              "variableName": "response"
            }
          ]
        }
        • Success
          • contactResultSet Variable

            Example configuration

            {
              "variableValue": [
                {
                  "$tag": "Variable",
                  "name": "contactLookup.response"
                }
              ]
            }
        • Error
          • lookupFailedSet Variable

            Example configuration

            {
              "variableValue": [
                {
                  "$tag": "Constant",
                  "value": "Contact lookup unavailable; do not create another contact automatically."
                }
              ]
            }

This diagram follows the downloadable workflow. Edit and run it in Chatigram.Swipe the diagram to explore its branches.

Plan availability #

Feature Free Starter Pro Enterprise
Active workflows 3 10 45 Unlimited

Allowances follow the published Chatigram pricing page. Your organization’s Billing & Plans screen confirms its subscription and current usage. Plans can change. Plan information reviewed 2026-11-10.

The business outcome #

Start a deliberate CRM contact lookup with a test email and inspect the result before adding any write action.

This is an importable starter using Chatigram’s current native nodes. It needs destination-specific setup; it does not imply a dedicated connector for every CRM or ERP brand. Check your software’s API documentation and permissions.

Before you begin #

Replace the placeholder API URL, authorization, test email, and the query parameter required by your CRM. This starter performs no create action.

The reserved example.invalid endpoint is deliberately non-working. No real customer data, account credentials, or private resource identifiers are embedded. Keep the workflow disabled until setup is complete.

Configure the workflow #

  1. Choose a controlled test email and configure contactLookup for the CRM search endpoint.
  2. Review whether the API performs an exact email match, a broad search, or a paginated result.
  3. Inspect contactResult before adding any create or update node. An empty list, access error, and partial search result are different outcomes.
  4. If you extend the pattern to create a contact, use the CRM’s stable identifier or duplicate-prevention support.

Test the outcomes #

  • Test one known contact and one known non-match.
  • Check pagination if the CRM can return several matches.
  • Confirm an API failure never falls through into an automatic create action.

Open Workflow Activity after the test. Import validation checks the definition; it does not prove a remote API accepted the business operation. Check the destination before repeating a send or write.

Make it your own #

Put reusable public settings in Properties, configure credentials through the protected connection options, and keep explicit error paths. Explore App Connections for existing provider-specific actions you can substitute through the editor.

Use the copy controls below for the complete workflow or its first node. The diagram and downloads come from the same definition. Use Share recipe to share the guide’s public address.

READY TO CUSTOMIZE

Try this in Chatigram

Setup required. Replace the placeholder API URL, authorization, test email, and the query parameter required by your CRM. This starter performs no create action. Placeholder endpoints use example.invalid and cannot call a real business service. Keep the workflow disabled until you finish the setup and review its effects.

Download JSON
View workflow JSON
Workflow JSON
{
  "format": "chatigram-workflow",
  "version": 1,
  "metadata": {
    "sourceName": "Find a CRM contact before creating a duplicate",
    "importHelp": {
      "note": "Setup required. Replace the placeholder API URL, authorization, test email, and the query parameter required by your CRM. This starter performs no create action. Placeholder endpoints use example.invalid and cannot call a real business service. Keep the workflow disabled until you finish the setup and review its effects."
    }
  },
  "workflow": {
    "instruction": null,
    "multiLanguageSupport": null,
    "properties": [],
    "trigger": {
      "$tag": "Trigger",
      "type": "MANUAL",
      "data": {}
    },
    "nodes": [
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000001",
        "name": "contactLookup",
        "parentId": null,
        "branchIndex": 0,
        "type": "HTTP_REQUEST_NODE_TYPE",
        "data": {
          "request": {
            "method": "GET",
            "path": [
              {
                "$tag": "Constant",
                "value": "https://business-api.example.invalid/crm/contacts"
              }
            ],
            "headers": [
              {
                "key": "Content-Type",
                "value": [
                  {
                    "$tag": "Constant",
                    "value": "application/json"
                  }
                ]
              }
            ],
            "queryStrings": [
              {
                "key": "email",
                "value": [
                  {
                    "$tag": "Constant",
                    "value": "person@example.com"
                  }
                ]
              }
            ],
            "body": [
              {
                "$tag": "Constant",
                "value": ""
              }
            ]
          },
          "responseHandlers": [
            {
              "$tag": "GetWholeAsString",
              "variableName": "response"
            }
          ]
        }
      },
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000002",
        "name": "contactResult",
        "parentId": "d0c00000-0000-4000-8000-000000000001",
        "branchIndex": 0,
        "type": "SET_VARIABLE",
        "data": {
          "variableValue": [
            {
              "$tag": "Variable",
              "name": "contactLookup.response"
            }
          ]
        }
      },
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000003",
        "name": "lookupFailed",
        "parentId": "d0c00000-0000-4000-8000-000000000001",
        "branchIndex": 1,
        "type": "SET_VARIABLE",
        "data": {
          "variableValue": [
            {
              "$tag": "Constant",
              "value": "Contact lookup unavailable; do not create another contact automatically."
            }
          ]
        }
      }
    ],
    "gotos": []
  }
}
Keep building.Need help with this? Explore troubleshooting ↗

Find an answer. Try “welcome workflow”, “database”, or “Telegram”.