Title: NOW Finance Social Content Importer
Author: NOW Finance
Published: <strong>September 23, 2026</strong>
Last modified: September 23, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/now-finance-social-content-importer.
svg)

# NOW Finance Social Content Importer

 By [NOW Finance](https://profiles.wordpress.org/pelsnowfinance/)

[Download](https://downloads.wordpress.org/plugin/now-finance-social-content-importer.2.0.2.zip)

 * [Details](https://wordpress.org/plugins/now-finance-social-content-importer/#description)
 * [Reviews](https://wordpress.org/plugins/now-finance-social-content-importer/#reviews)
 *  [Installation](https://wordpress.org/plugins/now-finance-social-content-importer/#installation)
 * [Development](https://wordpress.org/plugins/now-finance-social-content-importer/#developers)

 [Support](https://wordpress.org/support/plugin/now-finance-social-content-importer/)

## Description

NOW Finance Social Content Importer connects to supported social-media APIs and 
imports posts, images, video references, descriptions, hashtags, and engagement 
counts into WordPress.

New imports are drafts by default. Automatic imports, public REST access, and local
MP4 downloads are all opt-in. The plugin includes a responsive `[nsci_content_feed]`
shortcode and works without ACF, Elementor, or FileBird. Those plugins can optionally
consume or organize the metadata created by NOW Finance Social Content Importer.

Each provider requires credentials and API access supplied by the site owner. This
is a bring-your-own-developer-application plugin; installing it does not grant access
to provider APIs.

#### Features

 * TikTok Display API connection with OAuth token refresh.
 * Instagram Graph API imports for supported professional accounts.
 * LinkedIn Posts API imports for approved organization or member integrations.
 * LinkedIn OAuth 2.0 authorization using app Client ID and Client Secret, with 
   encrypted token storage and refresh-token support when LinkedIn enables it for
   the app.
 * Draft-first imports with source-ID deduplication and update-only mode.
 * Guarded image and optional video sideloading with size and host restrictions.
 * Manual imports, WP-Cron scheduling, WP-CLI commands, and an administrator REST
   import route.
 * Resumable background import batches that bound per-request enrichment and media
   downloads.
 * Dependency-free public feed shortcode.
 * A plugin-managed, fully named post type or any existing WordPress post type as
   the import destination.
 * Field-by-field mapping to ACF field names, JetEngine/Crocoblock meta keys, or
   standard WordPress post meta.
 * Optional ACF, JetEngine/Crocoblock, Elementor, and FileBird integration.

### Shortcodes

#### Imported content feed

    ```
    [nsci_content_feed] displays the latest published items from the configured destination post type in a responsive grid.
    ```

 * `count`: Number of posts to display, from 1 to 100. Default: `12`.
 * `source`: Optional provider filter: `tiktok`, `instagram`, or `linkedin`.
 * `columns`: Number of grid columns, from 1 to 4. Default: `3`.

Example: `[nsci_content_feed source="instagram" count="6" columns="2"]`

#### Single content field

    ```
    [nsci_content_field field="short_description"] displays one mapped field from the current imported item.
    ```

 * `field`: Required registered field key.
 * `post_id`: Optional destination post ID. When omitted, the current post is used.
 * `fallback`: Optional plain-text value displayed when the field is empty or unavailable.

Example: `[nsci_content_field field="like_count" post_id="123" fallback="0"]`

Available canonical field keys: `video_url`, `image_url`, `post_unique_id`, `hashtags`,`
button_link`, `video_description`, `post_date`, `short_description`, `like_count`,`
comment_count`, `source`, `source_id`, `source_caption`, `embed_link`, `embed_html`,`
media_type`, `media_category`, `imported_at`, `video_bg_type`, `video_mp4_url`, `
video_mp4_attachment_id`, and `video_iframe_url`. Shortcodes continue to use these
canonical names even when their stored field/meta keys are mapped.

### External services

This plugin communicates with third-party services only after an administrator supplies
credentials or connects an account. Depending on the enabled provider and action,
it sends access tokens, account or author identifiers, requested content fields,
paging cursors, and OAuth data to that provider. It receives social posts, media
URLs, account data, engagement counts, and token responses. The plugin developer
receives no telemetry from these requests.

#### TikTok

Used for Login Kit OAuth, token management, profile checks, and reading the connected
user’s public videos through the TikTok Display API.

 * Service: https://developers.tiktok.com/
 * Developer Terms: https://www.tiktok.com/legal/page/global/tik-tok-developer-terms-
   of-service/en
 * Terms of Service: https://www.tiktok.com/legal/page/global/terms-of-service/en
 * Privacy Policy: https://www.tiktok.com/legal/page/row/privacy-policy/en

#### Meta / Instagram

Used to read media and account data for a configured professional Instagram account
through the selected Instagram Graph API host.

 * Service: https://developers.facebook.com/docs/instagram-platform/
 * Platform Terms: https://developers.facebook.com/terms/
 * Privacy Policy: https://www.facebook.com/privacy/policy/

#### LinkedIn

Used to read posts, media assets, and social-action counts for the configured LinkedIn
author. Access to Community Management APIs may require LinkedIn review and an approved
access tier.

 * Service: https://learn.microsoft.com/linkedin/marketing/community-management/
   community-management-overview
 * API Terms of Use: https://www.linkedin.com/legal/l/api-terms-of-use
 * User Agreement: https://www.linkedin.com/legal/user-agreement
 * Privacy Policy: https://www.linkedin.com/legal/privacy-policy

### Privacy

The plugin does not send analytics or telemetry to its developer. It stores provider
credentials and tokens in encrypted form in the WordPress database. Imported content,
provider identifiers, import history, and downloaded media are also stored locally.

Public REST access is disabled by default. When enabled, published imported content
becomes available through both the plugin REST endpoint and the WordPress core endpoint
for the configured destination post type when that type supports REST.

Site owners are responsible for disclosing connected providers, imported content,
retention, and public presentation in their own privacy policy. The plugin adds 
suggested wording to the WordPress Privacy Policy Guide.

Only import and locally copy media that you are authorized to use. Provider terms
and access policies continue to apply.

### Upgrading from 2.0.0

Deactivate the previous Social Content Importer before activating this renamed plugin.
Do not delete the old plugin through WordPress: its uninstall routine removes shared
settings and credentials. Keep a database backup before upgrading.

Existing settings, content destinations, custom field mappings, and video-format
taxonomy relationships are preserved. New installations use nsci_social_video, nsci_video_format,
and nsci_ prefixed metadata. Administrator-configured external field keys and existing
post types retain their chosen names.

Replace [social_content_feed] and [social_content_field] in pages/templates with[
nsci_content_feed] and [nsci_content_field]. REST integrations now use /wp-json/
nsci/v1/ and CLI commands use wp nsci-content. Update the authorized callback URLs
in both TikTok and LinkedIn developer applications to the exact URLs shown in Connections,
then start a new connection flow. Old in-progress OAuth flows must be restarted.

## Installation

 1.  Upload the `now-finance-social-content-importer` folder to `/wp-content/plugins/`,
     or install the plugin ZIP from Plugins > Add New.
 2.  Activate NOW Finance Social Content Importer.
 3.  Open Social Content in WordPress administration.
 4.  Open Social Content > Settings. Keep the plugin-managed post type (and name it
     for your site), or select an existing post type and map the import fields to your
     custom-field keys.
 5.  Choose a provider and follow its setup instructions. Provider approval and required
     scopes must already be available to your developer application.
 6.  Save the credentials and use Test Connection before importing.
 7.  Run a manual import and review the resulting drafts.
 8.  Add `[nsci_content_feed]` to a page if you want to display published imports.
 9.  Enable automatic imports, public REST access, or local MP4 downloads only if your
     site requires them.

For stable credential encryption across WordPress salt rotations, define a long 
random `NSCI_SECRET_KEY` string in `wp-config.php`. Either the Sodium or OpenSSL
PHP extension must be available.

## FAQ

### Does this plugin provide social API credentials?

No. The site owner must create or control the relevant developer application, obtain
provider approval, and supply credentials with the required scopes.

### Does it require ACF, JetEngine, Elementor, or FileBird?

No. On a new installation the plugin registers its own post type and stores standard
WordPress metadata. In Settings, you can instead select an existing post type and
map every imported field to the field/meta names created in ACF, JetEngine/Crocoblock,
or another custom-field tool. The optional native field editor works without those
plugins. FileBird can optionally organize imported attachments.

### What happens if I change the destination or a field mapping?

Future imports use the newly selected post type and field keys. Existing posts and
values are not moved automatically. The plugin retains private source identity metadata
for deduplication inside each destination, and continues to read legacy fields from
posts imported before version 2.0.

### Can I choose custom fields from my existing post type?

Yes. In existing-post-type mode, field mappings offer dropdowns containing ACF fields,
JetEngine fields, WordPress-registered metadata, and stored custom-field keys found
on up to 200 recent posts (up to 500 stored keys). The list refreshes when you choose
a different destination. Discovery reads field definitions and names; it does not
send stored field values to the browser.

Each choice shows Match, Error, or Type unknown. Known incompatible types cannot
be saved. For example, an imported image URL needs a URL or text field; it cannot
be written directly into an ACF Image field that expects an attachment ID. Repeaters,
groups, relationship fields, and date fields requiring a different storage format
are not automatically converted. Fields without a declared schema are marked Type
unknown and must be checked before importing. ACF groups with additional location
conditions may need an actual post context and may not appear in the post-type list.

The plugin default remains available for every import field. ACF mappings use the
field key when writing new posts so ACF can create its field reference. Other integrations
can add field schemas with the `nsci_discovered_fields` filter; custom-table-only
storage requires a separate integration.

### How do I display imported posts?

Use `[nsci_content_feed]`. Optional attributes are `count` (1-100), `source` (`tiktok`,`
instagram`, or `linkedin`), and `columns` (1-4). For example: `[nsci_content_feed
source="instagram" count="6" columns="2"]`. Use `[nsci_content_field field="short_description"]`
to output one registered field.

### Are imports published automatically?

No. New installations import posts as drafts by default. Administrators can change
the new-post status in Settings.

### Does the plugin call providers immediately after activation?

No. New installations have automatic imports disabled. Provider requests begin when
an administrator configures and tests a connection or deliberately starts an import.

### What happens when the plugin is deleted?

Credentials, settings, caches, history, and scheduled events are removed. Imported
posts and media are retained to prevent unexpected content loss. Delete those items
separately if a full purge is required.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“NOW Finance Social Content Importer” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ NOW Finance ](https://profiles.wordpress.org/pelsnowfinance/)

[Translate “NOW Finance Social Content Importer” into your language.](https://translate.wordpress.org/projects/wp-plugins/now-finance-social-content-importer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/now-finance-social-content-importer/),
check out the [SVN repository](https://plugins.svn.wordpress.org/now-finance-social-content-importer/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/now-finance-social-content-importer/)
by [RSS](https://plugins.trac.wordpress.org/log/now-finance-social-content-importer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.2

 * Show a connect-channel prompt until a channel is connected, and limit import 
   controls to connected channels.

#### 2.0.1

 * Renamed the plugin and text domain for directory submission.
 * Prefixed plugin registrations and default storage keys with nsci.
 * Added OAuth permission checks for one-time state and the initiating administrator.
 * Corrected the contributor username and TikTok developer terms link.

#### 2.0.0

 * Redesigned the WordPress admin experience around four pages: Overview, Connections,
   Content, and Logs.
 * Added a guided setup checklist, provider switcher, live resumable-import progress,
   completion summaries, and queued-import cancellation.
 * Kept update-existing, background-video resolution, cache clearing, canonical 
   field mapping, and detailed import logs available in the consolidated interface.
 * Added a choice between a plugin-managed post type and an existing site post type.
 * Added configurable managed post type key, singular label, and plural label.
 * Added field-by-field mappings for ACF, JetEngine/Crocoblock, and standard post
   meta.
 * Applied the selected post type and mappings to imports, REST output, shortcodes,
   CLI commands, taxonomies, metadata registration, and video backfills.
 * Preserved private source identity metadata for reliable deduplication and legacy
   reads.

#### 1.9.2

 * Filtered restricted LinkedIn posts before resumable import snapshots are stored.
 * Stopped persisting expiring provider CDN URLs and removed legacy copies during
   upgrade.
 * Added the plugin-owned `nsci_source` taxonomy without removing legacy source-
   tag compatibility.
 * Prevented collisions with a `video_format` taxonomy registered by another plugin.
 * Required HTTPS before starting a new TikTok OAuth connection.
 * Made legacy plaintext credentials and tokens fail closed when encryption is unavailable.
 * Kept source unique IDs out of the public core REST meta response.
 * Made uninstall cleanup work consistently from both wp-admin and WP-CLI.

#### 1.9.1

 * Added a native Social Content Fields editor when ACF is unavailable.
 * Centralized and registered imported content metadata for themes and dynamic-content
   integrations.
 * Added the `nsci_content_field` shortcode and an in-plugin shortcode reference.
 * Removed the legacy embed URL migration tool and WP-CLI command.
 * Added dashboard toggles for post-type creation and the native content-field editor.
 * Changed post-type registration and the native Social Content Fields editor to
   opt-in defaults.
 * Confirmed release compatibility with WordPress 7.1 and restored the GPL license
   notice.

#### 1.9.0

 * Changed new-install defaults so automatic imports and local background-video 
   downloads require opt-in.
 * Registered a dependency-independent metadata schema.
 * Unified custom and core REST exposure behind the Public REST Access setting.
 * Added a responsive `nsci_content_feed` shortcode.
 * Added WordPress Privacy Policy Guide content and complete external-service disclosures.
 * Added public-release packaging and quality-tool configuration.
 * Minimized anonymous REST responses and hardened OAuth callback and stored-error
   handling.

#### 1.8.0

 * Added LinkedIn image and video resolution improvements, import history, and credential-
   storage hardening.

## Meta

 *  Version **2.0.2**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [content import](https://wordpress.org/plugins/tags/content-import/)[Instagram](https://wordpress.org/plugins/tags/instagram/)
   [LinkedIn](https://wordpress.org/plugins/tags/linkedin/)[social media](https://wordpress.org/plugins/tags/social-media/)
   [Tiktok](https://wordpress.org/plugins/tags/tiktok/)
 *  [Advanced View](https://wordpress.org/plugins/now-finance-social-content-importer/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/now-finance-social-content-importer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/now-finance-social-content-importer/reviews/)

## Contributors

 *   [ NOW Finance ](https://profiles.wordpress.org/pelsnowfinance/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/now-finance-social-content-importer/)