01
Requirement design
Seamless should describe the user's experience
A smooth product can let a user select a permitted record, preview fields, confirm where they belong, and observe import progress. It does not need hidden collection. Begin by listing the exact profile, company, relation, post, or search observation the workflow needs. DewEngine names those only as decision-gated targets and offers no approved LinkedIn extraction method today.
- Define the user gesture that starts each import
- Show source, destination, and requested fields before confirmation
02
Access review
Resolve the access path before choosing mechanics
The team must determine whether the exact provider product, account entitlement, customer role, purpose, and jurisdiction permit the requested operation. Public visibility is not a substitute for authorization. Do not build around crawling pages, replaying private requests, session theft, reverse engineering, or bypassing limits. If provider or legal approval is absent, the feature remains disabled and the product accepts alternative authorized inputs.
- Record the reviewed product and entitlement, not just the brand
- Fail closed when access scope or authorization is ambiguous
03
Schema
Import observations rather than imagined full profiles
A provider response is partial, account-dependent, and observed at a time. Model a source-scoped ID, resource type, observed fields, connected account, timestamp, and raw-to-normalized transformation version. Do not advertise a full profile when the authorized contract exposes only a subset. Unknown, absent, redacted, and inaccessible values need distinct states so downstream software does not turn missing data into false facts.
- Preserve provider extensions without promising them cross-provider
- Keep absence distinct from deletion or permission denial
04
Import transaction
Use preview, commit, and reconciliation stages
A preview can validate field mapping, duplicates, destination permissions, and expected changes without mutating the customer's system. Commit writes an idempotent import record, and reconciliation checks that every accepted value reached the intended tenant record. When part of a batch fails, report item-level outcomes and resume from durable progress rather than restarting the whole job and producing duplicates.
- Give each imported item a stable customer reference
- Make partial completion visible and safely resumable
05
User correction
Design an exit from every wrong import
Users need to unlink a mistaken person, reject a company match, restore a curated CRM field, and request deletion of copied observations. Preserve the decision trail without retaining unnecessary content. If a later source observation conflicts, propose a change rather than silently overwriting. Seamless recovery matters more than eliminating one confirmation click because identity mistakes can expose conversations and contaminate analytics.
- Support undo, split, and field-level rejection
- Keep audit metadata while deleting content under the retention policy
06
Proof
Qualify the whole lifecycle before enabling import
Required evidence includes legal and provider approval, entitlement negotiation, consented real-account fixtures, pagination, partial data, throttling, revoked access, tenant substitution, duplicate import, correction, export, retention expiry, and deletion. Operational metrics should expose lag and failure without logging personal content. The LinkedIn path must remain off until these gates and a provider-risk kill switch pass.
- Test the smallest and largest permitted record shapes
- Verify disabling the connector stops collection immediately