# n8n-nodes-d7-messaging

> Custom n8n nodes for D7 API to send SMS and WhatsApp messages

Latest version **0.2.2** (published 2025-01-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install n8n-nodes-d7-messaging
pnpm add n8n-nodes-d7-messaging
yarn add n8n-nodes-d7-messaging
bun add n8n-nodes-d7-messaging
```

## Health

**Score 25/100 (F)** — status: maintenance-mode.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.2 |
| Published | 2025-01-22 |
| First published | 2025-01-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=18.10 |
| Dependencies | 210 |
| Unpacked size | 36 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| GitHub stars | 0 |
| Author | int-dev@d7networks.com |
| Maintainers | direct7networks |
| Keywords | n8n-community-node-package |

## Links

- npm: https://www.npmjs.com/package/n8n-nodes-d7-messaging
- Repository: https://github.com/d7networks/d7-n8n
- Homepage: https://d7networks.com
- Issues: https://github.com/kishord7/n8n-nodes-d7-api/issues
- npm.io page: https://npm.io/package/n8n-nodes-d7-messaging

## Dependencies (210)

- [ms](https://npm.io/package/ms.md) ^2.1.3
- [ajv](https://npm.io/package/ajv.md) ^6.12.6
- [md5](https://npm.io/package/md5.md) ^2.3.0
- [sax](https://npm.io/package/sax.md) ^1.4.1
- [glob](https://npm.io/package/glob.md) ^7.2.3
- [gopd](https://npm.io/package/gopd.md) ^1.2.0
- [keyv](https://npm.io/package/keyv.md) ^4.5.4
- [levn](https://npm.io/package/levn.md) ^0.4.1
- [once](https://npm.io/package/once.md) ^1.4.0
- [util](https://npm.io/package/util.md) ^0.12.5
- [y18n](https://npm.io/package/y18n.md) ^5.0.8
- [acorn](https://npm.io/package/acorn.md) ^8.14.0
- [axios](https://npm.io/package/axios.md) ^1.7.4
- [chalk](https://npm.io/package/chalk.md) ^4.1.2
- [cliui](https://npm.io/package/cliui.md) ^8.0.1
- [crypt](https://npm.io/package/crypt.md) ^0.0.2
- [debug](https://npm.io/package/debug.md) ^4.4.0
- [fastq](https://npm.io/package/fastq.md) ^1.18.0
- [isexe](https://npm.io/package/isexe.md) ^2.0.0
- [jssha](https://npm.io/package/jssha.md) ^3.3.1
- [luxon](https://npm.io/package/luxon.md) ^3.4.4
- [slash](https://npm.io/package/slash.md) ^3.0.0
- [tslib](https://npm.io/package/tslib.md) ^2.8.1
- [which](https://npm.io/package/which.md) ^2.0.2
- [yargs](https://npm.io/package/yargs.md) ^17.7.2
- [assert](https://npm.io/package/assert.md) ^2.1.0
- [espree](https://npm.io/package/espree.md) ^9.6.1
- [globby](https://npm.io/package/globby.md) ^11.1.0
- [hasown](https://npm.io/package/hasown.md) ^2.0.2
- [ignore](https://npm.io/package/ignore.md) ^5.3.2
- [is-map](https://npm.io/package/is-map.md) ^2.0.3
- [is-nan](https://npm.io/package/is-nan.md) ^1.3.2
- [is-set](https://npm.io/package/is-set.md) ^2.0.3
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [merge2](https://npm.io/package/merge2.md) ^1.4.1
- [recast](https://npm.io/package/recast.md) ^0.21.5
- [rimraf](https://npm.io/package/rimraf.md) ^3.0.2
- [semver](https://npm.io/package/semver.md) ^7.6.3
- [uri-js](https://npm.io/package/uri-js.md) ^4.4.1
- [wrappy](https://npm.io/package/wrappy.md) ^1.0.2
- [xml2js](https://npm.io/package/xml2js.md) ^0.6.2
- [charenc](https://npm.io/package/charenc.md) ^0.0.2
- [deep-is](https://npm.io/package/deep-is.md) ^0.1.4
- [esprima](https://npm.io/package/esprima.md) ^4.0.1
- [esquery](https://npm.io/package/esquery.md) ^1.6.0
- [esutils](https://npm.io/package/esutils.md) ^2.0.3
- [find-up](https://npm.io/package/find-up.md) ^5.0.0
- [flatted](https://npm.io/package/flatted.md) ^3.3.2
- [is-glob](https://npm.io/package/is-glob.md) ^4.0.3
- [isarray](https://npm.io/package/isarray.md) ^2.0.5
- [js-yaml](https://npm.io/package/js-yaml.md) ^4.1.0
- [mime-db](https://npm.io/package/mime-db.md) ^1.52.0
- [no-case](https://npm.io/package/no-case.md) ^3.0.4
- [p-limit](https://npm.io/package/p-limit.md) ^3.1.0
- [reusify](https://npm.io/package/reusify.md) ^1.0.4
- [ts-node](https://npm.io/package/ts-node.md) ^10.9.2
- [argparse](https://npm.io/package/argparse.md) ^2.0.1
- [asynckit](https://npm.io/package/asynckit.md) ^0.4.0
- [dir-glob](https://npm.io/package/dir-glob.md) ^3.0.1
- [doctrine](https://npm.io/package/doctrine.md) ^3.0.0
- [escalade](https://npm.io/package/escalade.md) ^3.2.0
- [for-each](https://npm.io/package/for-each.md) ^0.3.3
- [has-flag](https://npm.io/package/has-flag.md) ^4.0.0
- [inflight](https://npm.io/package/inflight.md) ^1.0.6
- [inherits](https://npm.io/package/inherits.md) ^2.0.4
- [is-regex](https://npm.io/package/is-regex.md) ^1.2.1
- [jmespath](https://npm.io/package/jmespath.md) ^0.16.0
- [p-locate](https://npm.io/package/p-locate.md) ^5.0.0
- [path-key](https://npm.io/package/path-key.md) ^3.1.1
- [punycode](https://npm.io/package/punycode.md) ^2.3.1
- [acorn-jsx](https://npm.io/package/acorn-jsx.md) ^5.3.2
- [ast-types](https://npm.io/package/ast-types.md) ^0.15.2
- [call-bind](https://npm.io/package/call-bind.md) ^1.0.8
- [callsites](https://npm.io/package/callsites.md) ^3.1.0
- [es-errors](https://npm.io/package/es-errors.md) ^1.3.0
- [esrecurse](https://npm.io/package/esrecurse.md) ^4.3.0
- [fast-glob](https://npm.io/package/fast-glob.md) ^3.3.3
- [form-data](https://npm.io/package/form-data.md) ^4.0.0
- [get-proto](https://npm.io/package/get-proto.md) ^1.0.1
- [graphemer](https://npm.io/package/graphemer.md) ^1.4.0
- [is-bigint](https://npm.io/package/is-bigint.md) ^1.1.0
- [is-buffer](https://npm.io/package/is-buffer.md) ^1.1.6
- [is-string](https://npm.io/package/is-string.md) ^1.1.1
- [is-symbol](https://npm.io/package/is-symbol.md) ^1.1.1
- [js-base64](https://npm.io/package/js-base64.md) ^3.7.2
- [minimatch](https://npm.io/package/minimatch.md) ^9.0.5
- [object-is](https://npm.io/package/object-is.md) ^1.1.6
- [path-type](https://npm.io/package/path-type.md) ^4.0.0
- [picomatch](https://npm.io/package/picomatch.md) ^2.3.1
- [pluralize](https://npm.io/package/pluralize.md) ^8.0.0
- [type-fest](https://npm.io/package/type-fest.md) ^0.20.2
- [word-wrap](https://npm.io/package/word-wrap.md) ^1.2.5
- [wrap-ansi](https://npm.io/package/wrap-ansi.md) ^7.0.0
- [ansi-regex](https://npm.io/package/ansi-regex.md) ^5.0.1
- [call-bound](https://npm.io/package/call-bound.md) ^1.0.3
- [camel-case](https://npm.io/package/camel-case.md) ^4.1.2
- [color-name](https://npm.io/package/color-name.md) ^1.1.4
- [concat-map](https://npm.io/package/concat-map.md) ^0.0.1
- [deep-equal](https://npm.io/package/deep-equal.md) ^2.2.0
- [estraverse](https://npm.io/package/estraverse.md) ^5.3.0
- [flat-cache](https://npm.io/package/flat-cache.md) ^3.2.0
- [indefinite](https://npm.io/package/indefinite.md) ^2.5.1
- [is-extglob](https://npm.io/package/is-extglob.md) ^2.1.1
- [is-weakmap](https://npm.io/package/is-weakmap.md) ^2.0.2
- [is-weakset](https://npm.io/package/is-weakset.md) ^2.0.4
- [lower-case](https://npm.io/package/lower-case.md) ^2.0.2
- [micromatch](https://npm.io/package/micromatch.md) ^4.0.8
- [mime-types](https://npm.io/package/mime-types.md) ^2.1.35
- [optionator](https://npm.io/package/optionator.md) ^0.9.4
- [prelude-ls](https://npm.io/package/prelude-ls.md) ^1.2.1
- [source-map](https://npm.io/package/source-map.md) ^0.6.1
- [strip-ansi](https://npm.io/package/strip-ansi.md) ^6.0.1
- [text-table](https://npm.io/package/text-table.md) ^0.2.0
- [title-case](https://npm.io/package/title-case.md) ^3.0.3
- [type-check](https://npm.io/package/type-check.md) ^0.4.0
- [xmlbuilder](https://npm.io/package/xmlbuilder.md) ^11.0.1
- [ansi-styles](https://npm.io/package/ansi-styles.md) ^4.3.0
- [array-union](https://npm.io/package/array-union.md) ^2.1.0
- [cross-spawn](https://npm.io/package/cross-spawn.md) ^7.0.6
- [emoji-regex](https://npm.io/package/emoji-regex.md) ^8.0.0
- [fs.realpath](https://npm.io/package/fs.realpath.md) ^1.0.0
- [glob-parent](https://npm.io/package/glob-parent.md) ^6.0.2
- [has-bigints](https://npm.io/package/has-bigints.md) ^1.1.0
- [has-symbols](https://npm.io/package/has-symbols.md) ^1.1.0
- [imurmurhash](https://npm.io/package/imurmurhash.md) ^0.1.4
- [is-callable](https://npm.io/package/is-callable.md) ^1.2.7
- [json-buffer](https://npm.io/package/json-buffer.md) ^3.0.1
- [locate-path](https://npm.io/package/locate-path.md) ^6.0.0
- [object-keys](https://npm.io/package/object-keys.md) ^1.1.1
- [pascal-case](https://npm.io/package/pascal-case.md) ^3.1.2
- [path-exists](https://npm.io/package/path-exists.md) ^4.0.0
- [yocto-queue](https://npm.io/package/yocto-queue.md) ^0.1.0
- [dunder-proto](https://npm.io/package/dunder-proto.md) ^1.0.1
- [eslint-scope](https://npm.io/package/eslint-scope.md) ^7.2.2
- [esprima-next](https://npm.io/package/esprima-next.md) ^5.8.4
- [import-fresh](https://npm.io/package/import-fresh.md) ^3.3.0
- [is-arguments](https://npm.io/package/is-arguments.md) ^1.2.0
- [lodash.merge](https://npm.io/package/lodash.merge.md) ^4.6.2
- [resolve-from](https://npm.io/package/resolve-from.md) ^4.0.0
- [run-parallel](https://npm.io/package/run-parallel.md) ^1.2.0
- [side-channel](https://npm.io/package/side-channel.md) ^1.1.0
- [string-width](https://npm.io/package/string-width.md) ^4.2.3
- [ts-api-utils](https://npm.io/package/ts-api-utils.md) ^1.4.3
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^21.1.1
- [color-convert](https://npm.io/package/color-convert.md) ^2.0.1
- [function-bind](https://npm.io/package/function-bind.md) ^1.1.2
- [get-intrinsic](https://npm.io/package/get-intrinsic.md) ^1.2.7
- [internal-slot](https://npm.io/package/internal-slot.md) ^1.1.0
- [object.assign](https://npm.io/package/object.assign.md) ^4.1.7
- [parent-module](https://npm.io/package/parent-module.md) ^1.0.1
- [sentence-case](https://npm.io/package/sentence-case.md) ^3.0.4
- [shebang-regex](https://npm.io/package/shebang-regex.md) ^3.0.0
- [balanced-match](https://npm.io/package/balanced-match.md) ^1.0.2
- [delayed-stream](https://npm.io/package/delayed-stream.md) ^1.0.0
- [is-date-object](https://npm.io/package/is-date-object.md) ^1.1.0
- [is-path-inside](https://npm.io/package/is-path-inside.md) ^3.0.3
- [is-typed-array](https://npm.io/package/is-typed-array.md) ^1.1.15
- [object-inspect](https://npm.io/package/object-inspect.md) ^1.13.3
- [proxy-from-env](https://npm.io/package/proxy-from-env.md) ^1.1.0
- [supports-color](https://npm.io/package/supports-color.md) ^7.2.0
- [brace-expansion](https://npm.io/package/brace-expansion.md) ^2.0.1
- [combined-stream](https://npm.io/package/combined-stream.md) ^1.0.8
- [es-get-iterator](https://npm.io/package/es-get-iterator.md) ^1.1.3
- [es-object-atoms](https://npm.io/package/es-object-atoms.md) ^1.1.1
- [fast-deep-equal](https://npm.io/package/fast-deep-equal.md) ^3.1.3
- [get-caller-file](https://npm.io/package/get-caller-file.md) ^2.0.5
- [has-tostringtag](https://npm.io/package/has-tostringtag.md) ^1.0.2
- [is-array-buffer](https://npm.io/package/is-array-buffer.md) ^3.0.5
- [math-intrinsics](https://npm.io/package/math-intrinsics.md) ^1.1.0
- [natural-compare](https://npm.io/package/natural-compare.md) ^1.4.0
- [queue-microtask](https://npm.io/package/queue-microtask.md) ^1.2.3
- [safe-regex-test](https://npm.io/package/safe-regex-test.md) ^1.1.0
- [shebang-command](https://npm.io/package/shebang-command.md) ^2.0.0
- [transliteration](https://npm.io/package/transliteration.md) ^2.3.5
- [fast-levenshtein](https://npm.io/package/fast-levenshtein.md) ^2.0.6
- [file-entry-cache](https://npm.io/package/file-entry-cache.md) ^6.0.1
- [follow-redirects](https://npm.io/package/follow-redirects.md) ^1.15.9
- [is-number-object](https://npm.io/package/is-number-object.md) ^1.1.1
- [path-is-absolute](https://npm.io/package/path-is-absolute.md) ^1.0.1
- [side-channel-map](https://npm.io/package/side-channel-map.md) ^1.0.1
- [upper-case-first](https://npm.io/package/upper-case-first.md) ^2.0.2
- [which-collection](https://npm.io/package/which-collection.md) ^1.0.2
- [define-properties](https://npm.io/package/define-properties.md) ^1.2.1
- [is-boolean-object](https://npm.io/package/is-boolean-object.md) ^1.2.1
- [require-directory](https://npm.io/package/require-directory.md) ^2.1.1
- [set-function-name](https://npm.io/package/set-function-name.md) ^2.0.2
- [side-channel-list](https://npm.io/package/side-channel-list.md) ^1.0.0
- [which-typed-array](https://npm.io/package/which-typed-array.md) ^1.1.18
- [es-define-property](https://npm.io/package/es-define-property.md) ^1.0.1
- [eslint-config-riot](https://npm.io/package/eslint-config-riot.md) ^1.0.0
- [eslint-visitor-keys](https://npm.io/package/eslint-visitor-keys.md) ^3.4.3
- [set-function-length](https://npm.io/package/set-function-length.md) ^1.2.2
- [strip-json-comments](https://npm.io/package/strip-json-comments.md) ^3.1.1
- [define-data-property](https://npm.io/package/define-data-property.md) ^1.1.4
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^4.0.0
- [functions-have-names](https://npm.io/package/functions-have-names.md) ^1.2.3
- [json-schema-traverse](https://npm.io/package/json-schema-traverse.md) ^0.4.1
- [side-channel-weakmap](https://npm.io/package/side-channel-weakmap.md) ^1.0.2
- [is-generator-function](https://npm.io/package/is-generator-function.md) ^1.1.0
- [which-boxed-primitive](https://npm.io/package/which-boxed-primitive.md) ^1.1.1
- [available-typed-arrays](https://npm.io/package/available-typed-arrays.md) ^1.0.7
- [is-shared-array-buffer](https://npm.io/package/is-shared-array-buffer.md) ^1.0.4
- [regexp.prototype.flags](https://npm.io/package/regexp.prototype.flags.md) ^1.5.4
- [call-bind-apply-helpers](https://npm.io/package/call-bind-apply-helpers.md) ^1.0.1
- [is-fullwidth-code-point](https://npm.io/package/is-fullwidth-code-point.md) ^3.0.0
- [stop-iteration-iterator](https://npm.io/package/stop-iteration-iterator.md) ^1.1.0
- [has-property-descriptors](https://npm.io/package/has-property-descriptors.md) ^1.0.2
- [fast-json-stable-stringify](https://npm.io/package/fast-json-stable-stringify.md) ^2.1.0
- [possible-typed-array-names](https://npm.io/package/possible-typed-array-names.md) ^1.0.0
- [json-stable-stringify-without-jsonify](https://npm.io/package/json-stable-stringify-without-jsonify.md) ^1.0.1

## Recent versions

- 0.2.2 (latest) — 2025-01-22
- 0.2.1 — 2025-01-22
- 0.2.0 — 2025-01-20
- 0.1.9 — 2025-01-20
- 0.1.8 — 2025-01-20
- 0.1.7 — 2025-01-20
- 0.1.6 — 2025-01-20
- 0.1.5 — 2025-01-20
- 0.1.4 — 2025-01-20

## README

![D7 Messaging Logo](dist/src/nodes/D7Messaging/d7.svg)

# D7Networks Messaging Integration for n8n

## Installation

### 1. Install D7Networks Node
1. Open your n8n workspace
2. Click on Settings (⚙️) in the bottom left corner
3. Select Community Nodes from the sidebar
4. Search for `n8n-nodes-d7-messaging`
5. Click Install
6. Restart n8n when prompted

### 2. Verify Installation
1. Refresh your n8n workspace
2. Open the nodes panel (right sidebar)
3. Search for "D7"
4. You should see "D7 SMS" and "D7 WhatsApp" nodes
5. Try dragging either node into your workflow

### 3. Configure Authentication
1. Get your API key from [D7 Networks](https://app.d7networks.com/api-tokens)
2. In your n8n workflow:
   * Add D7 SMS or D7 WhatsApp node
   * Click "Create New Credential"
   * Enter your API key
   * Save credential

## Creating Messaging Workflows

### Basic Workflow Structure
```
[Contact Source] → [Function Node] → [D7 SMS/WhatsApp Node]
```

### Step 1: Import Contacts
Choose any contact source node:
- Google Sheets
- Airtable
- Database nodes
- Google Contacts
- CSV
- Any CRM integration

### Step 2: Process Contact Data
Add a Function node to format your contacts:

```javascript
// Format contacts for D7 nodes
return items.map(item => ({
  json: {
    recipient: item.json.phone,  // or any field containing phone number
    name: item.json.name,        // or any field containing name
  }
}));
```

### Step 3: Configure D7 Node

#### For SMS:
1. Connect Function node to D7 SMS node
2. Configure fields:
   * Recipients: `{{ $json.recipient }}`
   * Message: `Hello {{ $json.name }}, your message here`

#### For WhatsApp:
1. Connect Function node to D7 WhatsApp node
2. Configure fields:
   * Recipients: `{{ $json.recipient }}`
   * Choose message type (Template/Text/Media)
   * Add message content or template parameters

## Testing Your Workflow

1. Start with test contacts (2-3 numbers)
2. Activate workflow
3. Check message delivery
4. Monitor for any errors
5. Scale up after successful testing

## Common Issues & Solutions

### Invalid Phone Numbers
- Ensure numbers are in E.164 format
- Add validation in Function node:
```javascript
// Phone number validation
function validatePhone(phone) {
  const cleaned = phone.replace(/\D/g, '');
  return cleaned.startsWith('+') ? cleaned : '+' + cleaned;
}
```

### Message Delivery Issues
- Verify API credentials
- Check recipient number format
- Ensure sufficient credit balance

Need help? Contact 
## Support

- **Email**: [support@d7networks.com](mailto:support@d7networks.com)
- **Website**: [Visit Our Website](https://d7networks.com)



Would you like me to expand on any of these sections or add more specific workflow examples?

---
_Source: https://npm.io/package/n8n-nodes-d7-messaging · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
