TryGhost / Zapier

Ghost <-> Zapier Integration
https://developer.zapier.com/app/1566
MIT License
5 stars 3 forks source link

Add update_member "create" #16

Closed naz closed 4 years ago

naz commented 4 years ago

partially blocked by - https://github.com/TryGhost/Ghost-Zapier/issues/17

Problem

Users need a way to update information for existing members based on external triggers.

Example zaps

Technical solution

Creating a separate update_member "create" looks like the most probable solution, but needs a little more research into how other's are approaching similar problem (have seen create+update combined in one Zap). Based on research best solution should be chosen.

Todo

naz commented 4 years ago

When was doing research on how to best design a new "update" action for Member resource, these were the considerations about possible approaches:

  1. Make just an "Update" action
  2. Make a combined Create or Update action

Leaned toward 1st approach because of following reasons:

  1. Separate Update/Create actions in combination with Search is the most flexible combination pointed out by Zapier design guide and Salesforce integration design as an example.
  2. We already have a "Create" action. Creating a combined action (2nd approach) would make it confusing/redundant to existing action.
  3. Creating combined action would go against Zapier's best practice of combining Find-or-Create Search instead of having ‘Search’ with a ‘Create-or-Update’:

    Search actions can optionally create items if nothing is found in the search. If your integration has a ‘Create-or-Update’ action, please implement a ‘Find-or-Create Search’ with an ‘Update’ action versus a ‘Search’ with a ‘Create-or-Update’ action or a standalone ‘Create-or-Update’ action. (reference) (reference 2)

fyi @matthanley about making this decision and moving on with implementation. Let me know if it's enough of reasoning or we should get additional input from business team?

matthanley commented 4 years ago

Make just an "Update" action

Agree this seems like the correct approach, although I feel I'm missing some context on the scope of what's being discussed (I'm not sure if this is a Ghost change or Zapier implementation being discussed - I assume the latter).

naz commented 4 years ago

Your assumption is correct. This is strictly Zapier integration change :+1: Would not do any changes in Ghost API only "to suite the client" :)